Что делать, если у нас есть оператор if внутри цикла for, остановит ли цикл или условие if...
Пример:
for (int i = 0; i < array.length; i++) {
if (condition) {
statement;
break;
}
}
Что делать, если у нас есть оператор if внутри цикла for, остановит ли цикл или условие if...
Пример:
for (int i = 0; i < array.length; i++) {
if (condition) {
statement;
break;
}
}
Оператор break
не влияет на операторы if. Он работает только в циклах switch
, for
, while
и do
. Поэтому в вашем примере разрыв завершит цикл for
.
Смотрите этот раздел и этот раздел Java учебник.
Вы можете выйти из инструкции "if", если хотите, это может иметь смысл в таком сценарии:
for(int i = 0; i<array.length; i++)
{
CHECK:
if(condition)
{
statement;
if (another_condition) break CHECK;
another_statement;
if (yet_another_condition) break CHECK;
another_statement;
}
}
вы также можете выйти из помеченного выражения {}:
for(int i = 0; i<array.length; i++)
{
CHECK:
{
statement;
if (another_condition) break CHECK;
another_statement;
if (yet_another_condition) break CHECK;
another_statement;
}
}
a break
(и его спутник, "continue" ) также работает над окружением. if
-statement не является циклом. Поэтому, чтобы ответить на ваш вопрос: break
в вашем примере кода выскочит из for
-loop.
Выбранный ответ почти прав. если выражение break
должно быть смешано с помощью label
, то оно может использоваться в выражении if
без необходимости находиться в цикле. Следующий код полностью действителен, компилируется и запускается.
public class Test {
public static void main(String[] args) {
int i=0;
label:if(i>2){
break label;
}
}
}
Однако, если мы удалим метку, она не скомпилируется.
Он остановит цикл.
Команда break внутри оператора IF выйдет из цикла FOR.
Как только условие выполнено, и оператор успешно выполнен (пусть не возникает никакого исключения), то break
выходит из цикла.