Означает ли «немедленное нормальное завершение» то, что оператор if фактически обойден и его условие не оценивается?
ИЗМЕНИТЬ:
Я намеренно опустил пример, чтобы понять саму фразу из спецификации Java относительно оператора if.
Но, кажется, никто даже не рассматривал эту фразу в этом контексте.
Итак, вот демонстрационная программа.
import java.io.*;
class TestBreakWIthLabel
{
public static void main (String[] args) throws java.lang.Exception
{
int x = 1;
L:if ( x++ < 2 ) break L;
System.out.println( "x = " + x );
}
}
Но это плохая идея, что кто-то даст свое «объяснение», глядя на программу. Я хочу знать значение фразы независимо от примера программы.
Вот соответствующая цитата из Спецификации (14.15 Заявление о разрыве).
Оператор break с идентификатором метки пытается передать управление вложенному оператору с меткой (§14.7), который имеет тот же идентификатор, что и его метка; этот оператор, который называется целью прерывания, затем немедленно завершается нормально. В этом случае цель break не обязательно должна быть переключателем, оператором while, do или for.