LOOP1:for (String str1 : list1) { //Zur Aussage beschriftet
for (String str2 : list2) {
if (str1.equals(str2)) {
found(str1);
break LOOP1; //Verlassen Sie das Äußere für
}
}
}
Ist es dann möglich, andere Anweisungen als Schleifenanweisungen ** zu kennzeichnen?
** 3. In einigen Fällen kann eine andere Anweisung als die Schleifenanweisung beschriftet werden, und in einigen Fällen kann eine Anweisung geschrieben werden, die sich auf die Bezeichnung bezieht. ** ** **
Die meisten Java-Anweisungen können beschriftet werden.
//Beschriftete Formel!
FOO: a = 42; // OK
//!
BAR: if (a > 0) b = 1;
else b = -1; // OK
[^ Anweisung-1]: In der Formatdefinition in der Java-Sprachspezifikation ist die Anweisung, die "Anweisung" entspricht, gekennzeichnet. Eine lokale Variablendeklarationsanweisung ("LocalVariableDeclarationStatement") ist keine Art von "Anweisung".
Kompilierungsfehler
//Anweisung zur deklarierten Variablendeklaration??
FOO: int a = 42; // NG!
Wenn dann die Blockanweisung und die Steueranweisung (einschließlich nicht nur der Schleife, sondern auch der if-Anweisung und der try-Anweisung), denen die Blockanweisung untergeordnet ist, gekennzeichnet sind (z. B. "LABEL:"), wird "break" in den Block eingefügt. Sie können der Anweisung mit "LABEL:" entkommen, indem Sie LABEL; "ausführen.
FOO: if (val > 1000) { //Beschriftete if-Anweisung!
big = true;
if (val % 2 == 0) break FOO; //Verlasse den Block
bigOdd = true;
}
Beispielsweise kann es verwendet werden, wenn Sie in einem bestimmten Bereich einer Funktion "frühzeitig entkommen" möchten.
BLOCK:{ //Einfacher Block
Foo foo1 = stor.findFoo(fooName1);
if (foo1 == null)
break BLOCK; //Verlasse den Block
Foo foo2 = stor.findFoo(fooName2);
if (foo2 == null)
break BLOCK; //Verlasse den Block
foo2.setBar(foo1.getBar());
//Danach geht der Prozess endlos weiter...
}
Tatsächlich scheint es, dass Sie eine break-Anweisung schreiben können, die sich auf eine Bezeichnung bezieht, die an eine Anweisung ohne Blöcke angehängt ist.
FOO: break FOO; // OK!!!!
Nun, es ist überhaupt nicht nützlich ...