Ich habe ein paar if-else-Ausdrücke, die ich gut durch switch ersetzen könnte, jedoch möchte ich auch ein else-Statement behalten, d.h. wenn alle Bedingungen vorher unwahr sind - (wie) geht das?
String test = "2";
if (test.charAt(0) == 'a') {
System.out.println("1");
} else if (test.charAt(0) == 'b'){
System.out.println("2");
} else if (test.charAt(0) == 'c'){
System.out.println("3");
} else if (test.charAt(0) == 'd'){
System.out.println("4");
} else if (test.charAt(0) == 'e'){
System.out.println("5");
} else {
System.out.println("Nicht vorhanden");
}
String test = "2";
switch(test.charAt(0)){
case 'a': System.out.println("1"); break; // if bzw. if else
case 'b': System.out.println("2"); break; // if bzw. if else
case 'c': System.out.println("3"); break; // if bzw. if else
case 'd': System.out.println("4"); break; // if bzw. if else
case 'e': System.out.println("5"); break; // if bzw. if else
case test.charAt(0): System.out.println("Nicht vorhanden"); break; //else-Äquivalent
}
doch dann, selbst wenn ich test.charAt(0) in eine Variable extrahiere, erhalte ich:
"case expressions must be a constant statement".
Und das macht natürlich auch Sinn, dennoch wollte ich fragen, ob es eine Möglichkeit gibt, mit Switch-Cases eine Möglichkeit zu haben, wenn kein Fall korrekt ist. Und damit meine ich nicht, eine boolische Variable einzuführen, die dann in allen cases verändert wird.