„Hallo, Amigo!
„Hallo Ellie.“
„Du hast bereits Schleifen studiert, und das ist cool.“
„Ich stimme zu! Jetzt weiß ich überhaupt nicht, wie ich ohne sie leben soll.“
„Manchmal kann man darauf verzichten... Aber häufiger wird man sie brauchen. Heute werden wir über die Situation sprechen, in der man früher als geplant aus dem Teufelskreis herauskommen muss.“
„Meinen Sie, wenn die Bedingung zum Fortsetzen der Schleife erfüllt ist, Sie die Schleife aber trotzdem verlassen müssen?“
„Genau! Manchmal klingt es so, als wären Sie bereits Programmierer. Wie dem auch sei, um vorzeitig aus einer Schleife auszubrechen, können Sie die break- Anweisung verwenden. Schauen Sie sich das folgende Beispiel an:
Code | Erläuterung |
---|---|
|
Das Programm liest eine Zeile von der Tastatur, bis Sie Folgendes eingeben "exit" . |
„Ich verstehe. Das Programm liest Zeilen von der Konsole. Wenn Sie eingeben "exit"
, wird die isExit
Variable zu true
, die Schleifenbedingung lautet und die Schleife wird beendet.“!isExit
false
„Das stimmt. Java hat also eine spezielle break
Anweisung, mit der Sie diese Logik vereinfachen können. Wenn eine break
Anweisung innerhalb einer Schleife ausgeführt wird, endet die Schleife sofort. Das Programm beginnt mit der Ausführung der Anweisung, die auf die Schleife folgt. Die Anweisung ist sehr kurz :
break;
„So können Sie die break
Anweisung verwenden, um das gerade besprochene Beispiel umzuschreiben:
Code | Erläuterung |
---|---|
|
Das Programm liest eine Zeile von der Tastatur, bis Sie Folgendes eingeben "exit" . |
„Vielleicht werde ich mich daran erinnern. Ich habe das Gefühl, dass es nützlich sein wird.“
„Aber break
es ist nicht die einzige Java-Anweisung, mit der Sie das Verhalten einer Schleife steuern können. Java verfügt auch über diese continue
Anweisung. Wenn Sie eine continue
Anweisung innerhalb einer Schleife ausführen, wird die aktuelle Iteration der Schleife vorzeitig beendet.“
„Was meinst du mit Iteration?“
„Eine Schleifeniteration ist eine Ausführung des Schleifenkörpers. Die continue
Anweisung unterbricht die aktuelle Iteration der Schleife, break
beendet aber im Gegensatz zur Anweisung nicht die Schleife selbst. Die Anweisung ist außerdem kurz:
continue;
„Die Anweisung kann also continue
in einer Schleife verwendet werden, wenn wir die Ausführung bestimmter Iterationen der Schleife ‚überspringen‘ möchten?“
„Genau. Verstehen Sie den Unterschied zwischen break
und continue
? Wenn Sie eine Sieben unter 20 sich nicht wiederholenden Ziffern finden müssen, welche Art von Schleife und Schleifenunterbrechungsanweisung würden Sie verwenden?
„Hmm... ich würde alle Zahlen durchgehen und wenn ich 7 finde, dann würde ich eine ausführen break
.“
1
„Was ist, wenn Sie Zahlen von bis anzeigen müssen, 20
mit Ausnahme von Zahlen, die durch teilbar sind 7
?“
„Nun, hier brauche ich wahrscheinlich continue
, da ich die Schleife nicht verlassen möchte. Aber ich verstehe es immer noch nicht ganz.“
„Lassen Sie mich Ihnen zeigen, wie Sie dieses Problem lösen können. So könnte dieser Code aussehen.“
Code | Erläuterung |
---|---|
|
Das Programm zeigt Zahlen von 1 bis an 20 . Wenn die Zahl durch teilbar ist 7 (der Rest der Division durch 7 ist 0 ), überspringen wir die Anzeige der Zahl. |
„Warum siehst du mich so misstrauisch an, Ellie? Gibt es hier einen Haken?“
„Du kannst dich nicht täuschen, Amigo! Tatsächlich wird dieser Code nicht richtig funktionieren . Er zeigt die ersten 6 Ziffern an und i
bleibt dann für immer bei der Zahl hängen 7
. Schließlich continue
überspringt die Anweisung zwei andere Anweisungen: System.out.println(i)
und i++
. As Das Ergebnis: Sobald wir den Wert erreichen 7
, ändert sich die Variable i
nicht mehr und wir befinden uns in einer Endlosschleife. Ich habe den Code absichtlich so geschrieben, um einen sehr häufigen Fehler zu veranschaulichen.“
„Wie können wir das Problem beheben?“
„Hier gibt es zwei Möglichkeiten:“
Option 1:i
Vor der Ausführung ändern continue
, aber danachi % 7
Option 2:i
Immer am Anfang der Schleife erhöhen . Aber dann i
muss der Startwert sein 0
.
Option 1 | Option 2 |
---|---|
|
|
„Ausgezeichnet! Ich werde versuchen, diesen Fehler nicht zu machen.“
„Ich werde mich an dein Versprechen erinnern!“
GO TO FULL VERSION