Ответ 1
Это вырвалось бы из цикла for. Фактически break
имеет смысл только говорить о loops
, так как они полностью ломаются от loop
, а continue
переходит только к следующему iteration
.
В следующем коде оператор break
выходит из оператора if
только или из цикла for
тоже?
Мне нужно, чтобы он тоже вышел из цикла.
for (int i = 0; i < 5; i++) {
if (i == temp)
// do something
else {
temp = i;
break;
}
}
Это вырвалось бы из цикла for. Фактически break
имеет смысл только говорить о loops
, так как они полностью ломаются от loop
, а continue
переходит только к следующему iteration
.
Немаркированный break
вырывается из создаваемых конструкций switch
, for
, while
или do-while
. Он не принимает во внимание if
.
Подробнее см. http://download.oracle.com/javase/tutorial/java/nutsandbolts/branch.html.
Он также выходит из цикла.
Вы также можете использовать помеченные перерывы, которые могут вырваться из внешних циклов (и произвольных кодовых блоков).
looplbl: for(int i=;i<;i++){
if (i == temp)
// do something
else {
temp = i;
break looplbl;
}
}
Он прерывает цикл, но почему бы не явным образом поставить условие в себя? Это было бы более читаемым, и вам не пришлось бы писать оператор if вообще
(если я == temp, то temp = я совершенно бессмысленно)
break
должен выйти из любого цикла.
Он всегда будет выходить из цикла.
Разрыв никогда не относится к операторам if else. Это относится только к циклам (if/while) и операторам switch.
Обычно оператор break
вырывается из циклов (for
, while
и do...while
) и switch
.
В Java есть 2 варианта break
.
Labeled break
Он разбивает внешний контур, в который вы кладете макет.
breakThis: for(...){
for(...){
...
break breakThis; // breaks the outer for loop
}
}
Unlabeled break
Это утверждение, которое вы использовали в своем вопросе.
Он разбивает цикл, в котором он написан. Обычно внутренний цикл.
Это вырвет вас из цикла. Обычно оператор break используется для оптимизации времени выполнения вашей программы. Означает, что данное условие выполнено, используйте оператор break, чтобы он вывел вас из цикла и проигнорировал оставшиеся итерации.