Lassen Sie sich diese brechen, mit der ersten for
Schleife Start:
for(i=1; i<= 5;i++)
Die Zuweisungsanweisung, i=1
, heißt es lediglich, dass i
-1
gleich ist. Die bedingte Anweisung i<=5
gibt an, dass die Schleife so lange ausgeführt werden soll, wie i
kleiner oder gleich 5
ist. Diese Anweisung wird vor jedem Ausführen der Schleife überprüft. Die letzte Anweisung dort, i++
, besagt, dass i
nach jeder Ausführung der Schleife um 1
erhöht wird.
Wenn es hilft, könnte dies auch die folgende Art und Weise dargestellt werden:
int i = 1;
if (i<=5) {
//execute code here
i = i+1;
//return to if statement
}
(Natürlich kann es eigentlich nicht auf diese Weise codiert werden, da es keine GOTO-Befehl in Java ist der einzig gangbare Weg zu. ersetzen würde eine for
Schleife mit einem einfachen if
Anweisungsblock sein, den obigen Codeabschnitt innerhalb eines rekursiven Verfahrens zu schreiben, was sinnlos ist, da rekursive Verfahren komplizierter sind, als Schleife zu verwenden.)
Nun, was die break
Aussage does ist es die innerste Schleife beendet. Betrachten Sie dieses Beispiel (der Einfachheit halber ist dies nur Pseudo-Code mit Schleifennamen ohne tatsächliche for
Aussagen, stellen Sie sich vor jeder eine for
Schleife):
LOOP1 {
LOOP2 {
LOOP3 {
// some code here
break;
}
}
}
Wenn die break
Anweisung erreicht ist, LOOP3
beendet wird, wenn es auch Sonst wäre ich weitergelaufen. Beachten Sie, dass dies NUR LOOP3
beendet; Die anderen beiden Schleifen werden weiterhin ausgeführt.
Es ist jedoch möglich, eine äußere Schleife mit break
zu beenden. Wenn der Code wie folgt geschrieben:
LOOP1 {
LOOP2 {
LOOP3 {
// some code here
break LOOP1;
}
}
}
LOOP1
würde beendet werden; Dies würde auch zur Beendigung der anderen beiden Schleifen führen, da sie innerhalb von LOOP1
verschachtelt sind.
sieht aus wie dies eine gute Chance für das Debuggen des Codes sein kann ... –
[Break-Anweisungen in Java] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html) – CubeJockey
So ... willst du wissen was eine Schleife ist? Und was macht die 'Break'-Anweisung? Beide sind leicht erforscht und getestet. Inwiefern verhält sich dieser Code anders als erwartet? – David