„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
Scanner console = new Scanner(System.in);
boolean isExit = false;
while (!isExit)
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
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 isExitVariable zu true, die Schleifenbedingung lautet und die Schleife wird beendet.“!isExitfalse

„Das stimmt. Java hat also eine spezielle breakAnweisung, mit der Sie diese Logik vereinfachen können. Wenn eine breakAnweisung 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 breakAnweisung verwenden, um das gerade besprochene Beispiel umzuschreiben:

Code Erläuterung
Scanner console = new Scanner(System.in);
while (true)
{
   String s = console.nextLine();
   if (s.equals("exit"))
     break;
}
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 breakes ist nicht die einzige Java-Anweisung, mit der Sie das Verhalten einer Schleife steuern können. Java verfügt auch über diese continueAnweisung. Wenn Sie eine continueAnweisung 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 continueAnweisung unterbricht die aktuelle Iteration der Schleife, breakbeendet aber im Gegensatz zur Anweisung nicht die Schleife selbst. Die Anweisung ist außerdem kurz:

continue;

„Die Anweisung kann also continuein einer Schleife verwendet werden, wenn wir die Ausführung bestimmter Iterationen der Schleife ‚überspringen‘ möchten?“

„Genau. Verstehen Sie den Unterschied zwischen breakund 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, 20mit 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
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0 )
     continue;
   System.out.println(i);
   i++;
}
Das Programm zeigt Zahlen von 1bis an 20. Wenn die Zahl durch teilbar ist 7(der Rest der Division durch 7ist 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 ibleibt 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 inicht 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 imuss der Startwert sein 0.

Option 1 Option 2
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0 )
   {
     i++;
     continue;
   }
   
   System.out.println(i);
   i++;
}
int i = 0;
while (i < 20)
{
   i++;
   if ( (i % 7) == 0)
     continue;
   System.out.println(i);
}

„Ausgezeichnet! Ich werde versuchen, diesen Fehler nicht zu machen.“

„Ich werde mich an dein Versprechen erinnern!“