2017-12-18 4 views
-2

Ich versuche, Java-Code in einer if-and-else-Anweisung zu erstellen, die zwischen den beiden liegt. Wenn ich den Code ausführe, sollte die erwartete Ausgabe sein: "Hallo Welt Hallo Welt", aber alles, was ich bekomme ist "Hallo Hallo Hallo Hallo"Ändern des Integer-Werts innerhalb einer if-und-else-Anweisung

Ich habe keine Ahnung, was ich hier falsch mache. Kann mir bitte jemand das Problem sagen?

int p = 1; 

for (int i = 1; i < 5; i++) { 
    if (p == 1) {  
     System.out.println("hello"); 
     p = 2; 
    } else { 
     System.out.println("world"); 
     p = 1; 
    } 
} 
+0

Sind Sie sicher, dass das was ist? –

+1

Überprüfen Sie Ihre geschweiften Klammern – ajb

+0

Übrigens, Standard-Praxis für Einrückung ist, dass alles innerhalb der 'for' Block sollte eingerückt werden, rechts von der' for'. Hier haben Sie das erste "if", das in derselben Spalte wie "for" beginnt, anstatt es einzurücken. Wenn Sie es eingerückt hätten, hätten Sie das Problem wahrscheinlich selbst entdeckt. – ajb

Antwort

0

nach @ajb Kommentar, die Sie gerade p = 1-else Block verschieben:

for (int i = 1; i < 5; i++) { 
    if (p == 1) { 
     System.out.print("hello"); 
     p = 2; 
    } else { 
     System.out.print("world\n"); 
     p = 1; 
    } 
} 
2

Es ist nicht alle den Code in Ihrem Programm haben, aber schau mal hier:

else 
     System.out.println("world"); 
    p = 1; 
} 

Letzte geschweifte Klammer gehört nicht zum else Teil von if-else Aussage, gehört es zu der for Schleife, die eineumfasstTeil - verbessern Sie die Formatierung Ihres Codes und Sie werden den Unterschied sehen. Ihr else Teil ist nicht mit geschweiften Klammern umgeben, daher wird nur die erste Zeile nach dem Wort else ausgeführt, wenn die zweite Bedingung ausgeführt werden soll.

0

Sie fehlen eine geschweifte Klammer im Else-Block.

int p = 1; 

for(int i = 1; i < 5; i++){ 
    if (p == 1){  
     System.out.println("hello"); 
     p = 2; 
    } 
    else { 
     System.out.println("world"); 
     p = 1; 
    } 
} 
Verwandte Themen