wie können wir aus 4 inneren for loops ausgehen?

7

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?

%Vor%     
user472221 18.11.2010, 10:55
quelle

9 Antworten

17

Sie können eine markierte Pause als:

verwenden %Vor%     
codaddict 18.11.2010, 11:01
quelle
5

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 . So etwas sollte funktionieren:

%Vor%     
brain 18.11.2010 11:02
quelle
3

Sehen Sie sich die beschriftete break-Anweisung an

zum Beispiel hier: Verzweigungs-Statements

    
eric 18.11.2010 11:00
quelle
3
%Vor%     
SunnyShah 18.11.2010 11:01
quelle
2

Verwenden Sie eine beschriftete Schleife

%Vor%

und brechen Sie dann von der beschrifteten Schleife

ab     
stjohnroe 18.11.2010 11:02
quelle
1
%Vor%     
2red13 18.11.2010 11:06
quelle
1

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.

>     
T.E.D. 18.11.2010 11:07
quelle
0

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:

%Vor%

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.

    
lorenzog 18.11.2010 11:01
quelle
0

Erzeuge in jeder inneren for-Schleife einen Ausgang für dich selbst.
Hier ist eine schnelle und schmerzlose Lösung.

%Vor%

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.

    
BeemerGuy 18.11.2010 11:02
quelle