Heim >Java >javaLernprogramm >Eine eingehende Analyse der Rolle von Labels in Java-Schleifen
continue und break können den Ausführungsfluss der Schleife ändern, aber in mehreren Schleifen können diese beiden Anweisungen nicht direkt von der inneren Schleife zur äußeren Schleife springen. In der C-Sprache können mehrere Schleifensprünge durch goto-Anweisungen erreicht werden, aber die Verwendung von goto-Anweisungen in Nicht-Schleifenstrukturen führt zu einer Unordnung in der Programmstruktur und verschlechtert die Lesbarkeit. Daher hat Java eine beschriftete continue- und break-Anweisung erfunden. Tatsächlich handelt es sich um eine eingeschränkte goto-Anweisung, die speziell für Schleifen verwendet wird.
Normalerweise hat die von uns verwendete continue-Anweisung (oder break) keine Bezeichnung. In diesem Fall wird die continue-Anweisung (oder break) standardmäßig in der aktuellen Schleife ausgeführt. Eine beschriftete Schleife gibt der Schleife tatsächlich einen Namen. Wenn Sie die Anweisung „continue (oder break) + label“ verwenden, führt sie tatsächlich die continue (oder break)-Anweisung in der Schleife aus, in der sich die Beschriftung befindet.
Jetzt verwenden wir drei Beispiele, um beschriftete Schleifen zu veranschaulichen.
1. Doppelte Schleife ohne Beschriftung
package javaleanning; public class LableTest { public static void main(String[] args) { for(int i = 0; i < 10; i++){ for(int j = 0; j < 10; j++){ System.out.print("("+i+","+j+") "); } System.out.println(); } } }
Laufergebnis
(0,0) ( 0,1 ) (0,2) (0,3) (0,4) (0,5) (0,6) (0,7) (0,8) (0,9)
(1, 0) (1,1) (1,2) (1,3) (1,4) (1,5) (1,6) (1,7) (1,8) (1,9)
(2,0) (2,1) (2,2) (2,3) (2,4) (2,5) (2,6) (2,7) (2,8 ) (2 ,9)
(3,0) (3,1) (3,2) (3,3) (3,4) (3,5) (3,6) (3, 7) ( 3,8) (3,9)
(4,0) (4,1) (4,2) (4,3) (4,4) (4,5) (4 ,6) (4,7) (4,8) (4,9)
(5,0) (5,1) (5,2) (5,3) (5,4) ( 5,5 ) (5,6) (5,7) (5,8) (5,9)
(6,0) (6,1) (6,2) (6,3) (6, 4) (6,5) (6,6) (6,7) (6,8) (6,9)
(7,0) (7,1) (7,2 ) (7 ,3) (7,4) (7,5) (7,6) (7,7) (7,8) (7,9)
(8,0) (8, 1) ( 8,2) (8,3) (8,4) (8,5) (8,6) (8,7) (8,8) (8,9)
(9 ,0) (9,1) (9,2) (9,3) (9,4) (9,5) (9,6) (9,7) (9,8) (9,9)
2. Doppelte Schleife mit Beschriftung, „break+label“-Anweisung
In diesem Beispiel handelt es sich um eine doppelte for-Schleife. Wir fügen am Anfang der äußeren Schleife eine Beschriftung hinzu Beispielsweise erhält die äußere Schleife einen Namen) „outerCycle“. Die Verwendung von „break äußerer Zyklus“ in der inneren Schleife entspricht der Verwendung der break-Anweisung direkt in der äußeren Schleife.
package javaleanning; public class LableTest { public static void main(String[] args) { outerCycle: for(int i = 0; i < 10; i++){ for(int j = 0; j < 10; j++){ if(j == 5){ break outerCycle; } System.out.print("("+i+","+j+") "); } System.out.println(); } } }
Laufergebnis
(0,0) (0,1) (0,2) (0,3) ( 0,4)
3. Doppelte Schleife mit Label, „continue+label“-Anweisung
In diesem Beispiel handelt es sich um eine doppelte for-Schleife, wir geben der äußeren Schleife einen Start eine Bezeichnung (die der äußeren Schleife einen Namen gibt) „outerCycle“. Die Verwendung von „continue OuterCycle“ in der Innenschleife entspricht der Verwendung der Continue-Anweisung direkt in der OuterCycle-Schleife.
package javaleanning; public class LableTest { public static void main(String[] args) { outerCycle: for(int i = 0; i < 10; i++){ for(int j = 0; j < 10; j++){ if(j == 5){ continue outerCycle; } System.out.print("("+i+","+j+") "); } System.out.println(); } } }
Laufergebnis
(0,0) (0,1) (0,2) (0,3) ( 0,4) (1,0) (1,1) (1,2) (1,3) (1,4) (2,0) (2,1) (2,2) (2,3) ( 2,4) (3,0) (3,1) (3,2) (3,3) (3,4) (4,0) (4,1) (4,2) (4,3) ( 4,4) (5,0) (5,1) (5,2) (5,3) (5,4) (6,0) (6,1) (6,2) (6,3) ( 6,4) (7,0) (7,1) (7,2) (7,3) (7,4) (8,0) (8,1) (8,2) (8,3) ( 8,4) (9,0) (9,1) (9,2) (9,3) (9,4)
Hinweis: Die tatsächlichen Laufergebnisse werden alle in einer Zeile angezeigt (d. h , es wird keine Zeilenumbruchanweisung ausgeführt), die aktuellen Anzeigeergebnisse dienen nur aus Layoutgründen
Für eine detailliertere Analyse der Rolle von Tags in Java-Schleifen und verwandte Artikel beachten Sie bitte die chinesische PHP-Website !