Wie kann ich dieses switch-case in if umwandeln?

3 Antworten

Diese Bedingung:

if (choice >= 1) {

ist falsch, denn im Fall, dass choice den Wert 3 hat, würde sie ebenso zutreffen.

Diese Bedingung wiederum:

if (choice <= 3) {

würde auch bei den Werten 1 und 2 erfüllt werden.

Übersetze es doch eher Eins-zu-eins (Pseudocode):

if choice == 1 or choice == 2:
  print "Feuer"
else if choice == 3:
  print "Luft"
else:
  print "ungültig"

Miriamb8 
Beitragsersteller
 18.03.2022, 21:37
public class choice {
	public static void main(String[] args){
		
		int choice = 2;
		if(choice == 1 || choice == 2){
		System.out.print("Feuer");
		}else if (choice == 3){
			System.out.print("Luft");
		}else{
			System.out.print("ungueltig");
		}
	}
}
Miriamb8 
Beitragsersteller
 18.03.2022, 21:36

Danke habe es gerade versucht jedoch kommt beim code immer noch bei 3 Feuer ich weiss gerade nicht ob es an meinem Laptop liegt oder sonstiges. Ich sehe nämlich keinen Fehler mehr drin...

regex9  18.03.2022, 22:24
@Miriamb8

Stell sicher, dass du deinen Code richtig gespeichert hast und auch das richtige Projekt für die Ausführung startest. Wenn du auf der Konsole arbeitest, musst du den Code nach Änderung neu kompilieren.

Hey,

liegt ganz simpel daran, dass Du bei Deiner ersten Abfrage abfragst, ob die Zahl größer oder gleich 1 ist. Das ist immer der Fall, bevor die anderen Abfragen überhaupt an die Reihe kommen.

Um dieses Problem zu beheben wäre es sinnvoll die Reihenfolge der Ifs zu ändern oder mit dem Und-Operator zu arbeiten, statt mit größer, kleiner und gleich.

LG :)

Woher ich das weiß:Hobby – Hobby-Entwickler in diversen Sprachen seit 2017

Miriamb8 
Beitragsersteller
 18.03.2022, 21:25

achso danke :)

if((1==choise)||(2==choise))System.out.print("Feuer");
else{
     if(3==choise)System.out.print("Luft");
     else System.out.print("ungültig");
}

Mal ein Versuch, ungetestet ....

oder

String s="";
if((1==choise)||(2==choise))s="Feuer";
else{
     if(3==choise)s="Luft";else s="ungültig";
}
System.out.print(s);
Woher ich das weiß:eigene Erfahrung – Hobby und teilweise beruflich