Hallo
Ich bin Anfänger in Java und mein Programm hat 4 for Schleifen:
Mein Programm funktioniert so, dass, wenn b
ist true
, das Element wird aus pointList entfernt und n
wird n--
sein und ich möchte von allen for-Schleifen ausgehen und wieder aus der ersten for-Schleife kommen also l
wird l++
sein, wie kann ich das tun? mit break-Anweisung?
In einer Schleife beendet die break
-Anweisung die innere Schleife, während continue
die nächste Iteration überspringt. Damit diese beiden Anweisungen auf einer anderen Schleife als der inneren funktionieren, müssen Sie labels
Sehen Sie sich die beschriftete break-Anweisung an
zum Beispiel hier: Verzweigungs-Statements
Ich stimme allen anderen Antworten zu. Ich möchte jedoch darauf hinweisen, dass eine Alternative zu exit
darin besteht, diesen Code in seine eigene Routine zu schreiben und eine return
-Anweisung zu verwenden, um aus der ganzen Sache auszubrechen. Ihre Quad-Nested-Schleife ist so komplex, dass sie es wahrscheinlich verdient, in ihrer eigenen Routine zu sein.
Ich habe an DoD-Jobs gearbeitet, für die eine zyklomatische Komplexität von nicht mehr als 6 erforderlich war für irgendeine Routine (mit einigen Ausnahmen). Diese Reihe von Schleifen allein ist 4. Wenn Sie nicht einen einfacheren Weg finden, es zu tun, sollten Sie sie wirklich in ihre eigene Routine chuck, nur um die Gesundheit der armen Schmucks, die diesen Code pflegen müssen, zu bewahren.
> Eine erste "schnelle und schmutzige" Lösung wäre es, eine stay_into_loops
Variable zu verwenden und die for
Schleifen wie folgt zu ändern:
Allerdings ist es normalerweise ein Code-Geruch, wenn Sie auf solche Dinge stoßen. Überlegen Sie, den Code neu zu gestalten, da dies irgendwann zu einem Chaos führen wird.
Erzeuge in jeder inneren for-Schleife einen Ausgang für dich selbst.
Hier ist eine schnelle und schmerzlose Lösung.
Sie sehen also, dass breakout
boolean Ihr Ticket aus jeder inneren Schleife ist, weil es in jeder for
-Deklaration überprüft wird.
Und es wird jedes Mal zurückgesetzt, wenn der erste for
iteriert.
Tags und Links java break label for-loop labelled-break