Оператор break выходит из циклов или только из операторов if? - PullRequest
11 голосов
/ 03 сентября 2011

В следующем коде оператор break выходит только из оператора if или из цикла for?

Мне нужно, чтобы он тоже вышел из цикла.

for (int i = 0; i < 5; i++) {
    if (i == temp)
        // do something
    else {
        temp = i;
        break;
    }
}

Ответы [ 9 ]

20 голосов
/ 03 сентября 2011

Это вырвется из цикла for. На самом деле break имеет смысл, когда речь идет о loops, поскольку они полностью отделяются от loop, тогда как continue идет только к следующему iteration.

15 голосов
/ 03 сентября 2011

Немеченый break вырывается только из конструкции switch, for, while или do-while. Он не учитывает if заявлений.

Подробнее см. http://download.oracle.com/javase/tutorial/java/nutsandbolts/branch.html.

7 голосов
/ 03 сентября 2011

Он также выходит из цикла.

Вы также можете использовать помеченные разрывы, которые могут выходить из внешних циклов (и произвольных кодовых блоков).

looplbl: for(int i=;i<;i++){

    if (i == temp)
        // do something
    else {
        temp = i;
        break looplbl;
    }
}
4 голосов
/ 03 сентября 2011

Это прерывает цикл, но почему бы явно не поставить условие в for for себя? Это было бы более читабельно, и вам вообще не пришлось бы писать оператор if

(если i == temp, тогда temp = i совершенно бессмысленно)

2 голосов
/ 03 сентября 2011

Перерыв никогда не относится к операторам if / else. Он относится только к циклам (если / пока) и операторам переключения.

2 голосов
/ 03 сентября 2011

Он всегда будет выходить из цикла.

2 голосов
/ 03 сентября 2011

break должен выйти из любой петли.

1 голос
/ 24 ноября 2017

Обычно оператор break выходит из циклов (for, while и do...while) и switch операторов.

В Java есть 2 варианта break.

1. Labeled break

Это разрывает внешнюю петлю, куда вы помещаете этикетку.

breakThis: for(...){
   for(...){
      ... 
      break breakThis;  // breaks the outer for loop
   }
}

2. Unlabeled break

Это утверждение, которое вы использовали в своем вопросе.

Это разрывает цикл, в котором оно написано. Вообще внутренний цикл.

0 голосов
/ 18 апреля 2019

Это вырвет вас из цикла for. Обычно оператор break используется для оптимизации времени выполнения вашей программы. Означает, что данное условие выполнено, используйте оператор break , чтобы он вывел вас из цикла и проигнорировал оставшиеся итерации.

...