break und Sprungmarken
-
Java Insel schrieb:
import java.util.Scanner; public class UserInputInStringArray { public static void main( String[] args ) { String[] validInputs = { "Banane", "Apfel", "Kirsche" }; userInputLoop: while ( true ) { String input = new Scanner( System.in ).nextLine(); for ( String s : validInputs ) if ( s.equals( input ) ) break userInputLoop; } System.out.println( "Gültiges Früchtchen eingegeben" ); } }Wie kommt es, dass wenn man z.B. Banane eingibt, trotzdem "Gültiges Früchtchen eingegeben" ausgegeben wird? Ich sehe
break userInputLoopirgendwie wie dasgotovon C. Und wenn man wieder vor die Endlosschleife springt, sollte die Endlosschleife doch erneut ausgeführt werden!? Warum ist das hier nicht der Fall?
-
schreiberkugel schrieb:
Wie kommt es, dass wenn man z.B. Banane eingibt, trotzdem "Gültiges Früchtchen eingegeben" ausgegeben wird? Ich sehe
break userInputLoopirgendwie wie dasgotovon C.Es ist halt kein goto. Das Label geht nur an Loops und mit dem labeled break unterbricht man gezielt den Loop mit dem angegebenen Label.
-
Achso, krass.
D.h. ein alleinstehendes break gibt es in Java nicht?
-
Mmh? Doch, das geht halt ganz normal nur aus der innersten Schleife.
-
Ah, kk.
Danke.