Почему мы используем разрывы в циклах JavaScript? - PullRequest
2 голосов
/ 05 сентября 2011

Я знаю, что "break" используется для остановки цикла до выполнения определенного условия, но я действительно растерялся, ПОЧЕМУ использую break, когда у нас есть возможность улучшить наши критерии. Например, посмотрите на этот кусок кода:

var i = 0;
for (i = 0; i <= 10; i++) {
    if (i == 3) {
        break;
    }
    document.write("The number is " + i);
    document.write("<br />");
}

Я очень хорошо знаю, что эта команда останова завершит цикл, когда значение переменной достигнет 3, но мой вопрос заключается в том, почему мы используем останов вместо того, чтобы сделать наше условие вроде i <= 3. Может кто-нибудь прояснить это на каком-то практическом примере? </p>

Ответы [ 6 ]

6 голосов
/ 05 сентября 2011

Простой пример: циклически проходить по объектам в массиве и искать тот, который удовлетворяет определенному условию. Когда вы нашли этот объект, вам не нужно проверять остальные, поэтому используйте break.

3 голосов
/ 05 сентября 2011
for (var i = 0; i < arr.length; i++) {
  var e = arr[i];
  if (someCondition(e)) {
    break;
  }
}
// use e

vs

for (var i = 0; !someCondition(arr[i]); i++);
var e = arr[i];
// use e

Да, вы можете иметь лучшее условие, но это означает, что вы помещаете логику в оператор цикла for, а не в тело.Это может быстро привести к нечитаемому коду.

break и continue более читабельны

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

В вашем примере это плохое состояние цикла.

Однако было бы очень сложно работать с другими объектами. Смотрите мой пример.

var i = 0;
var myArrayOfObjects = ....
for (i = 0; i <= 10; i++) {
    if (myArrayOfObject[i].someProperty == 3) {
        break;
    }
    document.write("The number is " + i);
    document.write("<br />");
}
2 голосов
/ 05 сентября 2011

Например, когда вы ищете что-то в массиве из 10 элементов, вы хотите выполнить цикл от 0 до 9. Однако, как только результат будет найден, дальнейший поиск бесполезен, поэтому вы можете break и выпрыгнуть из петли.

1 голос
/ 05 сентября 2011

Я уверен, что это просто кусок кода, чтобы показать вам, как работает break.На самом деле, вы бы ничего такого не написали.

Однако у break есть свои преимущества.Вы можете выйти из цикла в любой момент, когда захотите (не только тогда, когда это указано в условии цикла)

0 голосов
/ 05 сентября 2011

Чтобы добавить к тому, что сказали другие люди, иногда нужно прерывать работу только при наступлении определенного события.Код, подобный следующему:

while(true)
{
//run application
if(event)

   break;


}
//end application

имеет смысл в контексте многих приложений, особенно игр.

Кроме того, иногда вам может понадобиться проверить условие в середине цикла ине в начале, поэтому использование break не только делает код более читабельным, но в некоторых случаях это важно.

...