Heim  >  Artikel  >  Java  >  Eine eingehende Analyse der Rolle von Labels in Java-Schleifen

Eine eingehende Analyse der Rolle von Labels in Java-Schleifen

高洛峰
高洛峰Original
2017-01-22 16:35:431191Durchsuche

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 !

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn