if(condition1)
{
break MyLabel;
}
while(true)
{
//some code here
MyLabel: if(condition2) break;
//more code here
}
и я получаю эту ошибку:
Отсутствует метка MyLabel.
Что не так?
Ответ 1
Вы можете только сломать ярлык, который находится в текстовом приложении. В вашем примере метка НЕ содержит оператор, который заключает оператор break.
(Для того, что стоит, даже языки более высокого уровня, поддерживающие goto, не позволяют вам прыгать в середину цикла извне. Я думаю о C... и более старых языках, таких как FORTRAN.)
Java позволяет вам вырваться, но взломать незаконно... и вас заставят арестовать: -)
(Извините, я не мог удержаться от этого. Для тех, кто не получает шутку, "перерыв" - это когда кто-то входит в ваш дом, чтобы украсть вещи - см. "break and enter" ...)
Ответ 2
Вы не можете использовать метки как goto в этом общем способе.
Используйте метки, если вы хотите перейти на более высокий уровень вложенного кода.