Erstmal Hallo an alle hier im Forum!!
Eine Frage, gibt es eine Moeglichkeit nachfolgenden Code eleganter bzw. kompakter zu schreiben:
if (state == 130) {
switch (asciisplit[j][zaehler]) {
case 8:
System.out.println("gD ");
theOutput.write( ("gD ").getBytes());
state = 8;
zaehler++;
break;
case 4:
System.out.println("gR ");
theOutput.write( ("gR ").getBytes());
state = 4;
zaehler++;
break;
case 2:
System.out.println("gU ");
theOutput.write( ("gU ").getBytes());
state = 2;
zaehler++;
break;
case 1:
System.out.println("gL ");
theOutput.write( ("gL ").getBytes());
state = 1;
zaehler++;
break;
default:
System.out.println(„Fehler“);
}
}
if (state == 8) {
switch (asciisplit[j][zaehler]) {
case 4:
System.out.println("rR ");
theOutput.write( ("rR ").getBytes());
state = 4;
zaehler++;
break;
case 2:
System.out.println("mC ");
theOutput.write( ("mC ").getBytes());
System.out.println("gU ");
theOutput.write( ("gU ").getBytes());
state = 2;
zaehler++;
break;
case 1:
System.out.println("rL ");
theOutput.write( ("rL ").getBytes());
state = 1;
zaehler++;
break;
}
}
Danke & Gruss,
lesezeichen
Hi.
...
if (state == 130) {
switch (asciisplit[j][zaehler]) {
case 8 :
System.out.println("gD ");
theOutput.write(("gD ").getBytes());
break;
case 4 :
System.out.println("gR ");
theOutput.write(("gR ").getBytes());
break;
case 2 :
System.out.println("gU ");
theOutput.write(("gU ").getBytes());
break;
case 1 :
System.out.println("gL ");
theOutput.write(("gL ").getBytes());
break;
default :
System.out.println("Fehler");
}
state = asciisplit[j][zaehler];
// zaehler++;
// continue;
}
if (state == 8) {
switch (asciisplit[j][zaehler]) {
case 4 :
System.out.println("rR ");
theOutput.write(("rR ").getBytes());
break;
case 2 :
System.out.println("mC ");
theOutput.write(("mC ").getBytes());
System.out.println("gU ");
theOutput.write(("gU ").getBytes());
break;
case 1 :
System.out.println("rL ");
theOutput.write(("rL ").getBytes());
break;
}
state = asciisplit[j][zaehler];
// zaehler++;
// continue;
}
...
zaehler++;
- state brauchst du nur einmal setzen, da du ihn ja sowieso
immer auf den case-Wert setzt.
- da du zaehler ja sowieso immer inkrementierst, kannst du das
an nur einer Stelle machen
Da sich state ja ggfs. in einer if-Abfrage aendert (Beispiel
if (state == 130) -> state = 8 -> if (state == 8), ist die
Frage, ob dann auch die naechste if-Abfrage durchlaufen werden
soll?
Dann solltest du den zaehler in der if-Abfrage inkrementieren, falls
gewuenscht. Falls nicht, zaehler erst vor dem naechsten Durchlauf
erhoehen.
Um die ifs zu ueberspringen mit continue den naechsten
Schleifendurchlauf erzwingen.
Gruss, Patrick