Programmieren – die besten Beiträge

Java Switch Case im Falle, dass alle "case"s falsch sind?

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.

Computer, programmieren, Java

Array in ein anderes Array absteigend sortieren - Java?

Hallo Zusammen,

ich würde gerne ein Array in ein anderes Array absteigend sortieren.

Wenn ich in der for-Schleife und auch im weiteren Verlauf immer den letzen Index, also hier 3 manuell eingebe, läuft mein Programm tadellos. Jedoch möchte ich nicht von einer bestimmten Array-Länge abhängig sein und deshalb die Abbruchbedingung "hoch.length" anstatt eines festen Indexes nutzen, damit ich das Array auch ggf. erweitern kann.

Hier habe ich aber irgendwo einen Fehler und finde einfach nicht warum ich einen "Index out of bound" Fehler in der kursiv markierten Zeile erhalte.

Kann mir vielleicht jemand sagen wo mein Fehler liegt?

Danke!

public static void main(String[] args) {
      //   Index   =            0,1,2,3
         int [] hoch = new int []{2,3,4,5};            
         // neues array "runter" erstellen mit der Länge von Array "hoch"
         int [] runter = new int [hoch.length];
         // Start bei 0, Ende bei hoch.length
         for(int i=0; i <= hoch.length; i++) {
         // Hilfsvariable "hilfe" einbauen     
         int hilfe;                                    
  // hoch.length ist mein letzter Durchgang, -1 da ich eine Position mehr habe als dass ich einen Index habe
         runter [i] = hoch [hoch.length -i -1];
         hilfe = runter [i];
         }     
         // Ausgabe
         System.out.println("Array hoch:" + " " + Arrays.toString(hoch));
         System.out.println("Array runter:" + " " + Arrays.toString(runter));
         }}
Computer, Schule, programmieren, Java, Array

Meistgelesene Beiträge zum Thema Programmieren