1. breakAussage

Schauen wir uns ein Beispiel aus der vorherigen Lektion 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".

Das Programm liest Zeilen von der Konsole, bis das Wort exiteingegeben wird. Wenn Sie dieses Wort eingeben, wird die isExit Variable zu true, die Schleifenbedingung lautet und die Schleife wird beendet.!isExitfalse

Java verfügt über 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 Aussage 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".


2. continue-Anweisung

Dies ist jedoch breaknicht die einzige Java-Anweisung, mit der Sie das Verhalten einer Schleife steuern können. Java hat auch die continueAnweisung. Wenn Sie eine Anweisung innerhalb einer Schleife ausführen continue, wird die aktuelle Iteration der Schleife vorzeitig beendet.

Das einmalige Ausführen des Schleifenkörpers wird als Iteration der Schleife bezeichnet. Die continueAnweisung unterbricht die aktuelle Iteration der Schleife, breakbeendet aber im Gegensatz zur Anweisung nicht die Schleife selbst. Die Aussage ist auch kurz:

continue;

Die continueAnweisung ist in einer Schleife sehr praktisch, wenn wir in bestimmten Situationen die Ausführung des Schleifenkörpers „überspringen“ möchten.

Aufgabe: Wir wollen ein Programm schreiben, das Zahlen von 1bis ausgibt 20, aber Zahlen überspringt, die durch teilbar sind 7. 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.

Tatsächlich wird dieser Code nicht funktionieren , da ier für immer an der Nummer hängen bleibt 7. Schließlich continueüberspringt die Anweisung zwei weitere Anweisungen: System.out.println(i)und i++. Sobald wir den Wert erreichen 7, ändert sich die Variable inicht mehr und wir befinden uns in einer Endlosschleife.

Wir haben den Code absichtlich so geschrieben, um diesen sehr häufigen Fehler zu veranschaulichen. Wie beheben wir das Problem?

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);
}