var num = 0;
for(var i = 0; i < 10; i++){
for(var j = 0; j < 10 ; j++){
if(i == 5 && j == 5){
break;
}
num++;
}
}
console.log(num)
var num = 0;
for(var i = 0; i < 10; i++){
for(var j = 0; j < 10 ; j++){
if(i == 5 && j == 5){
break;
}
num++;
}
}
console.log(num)
когда используется без метки, break только прерывает текущий цикл, в вашем случае самый внутренний для. Итак, теперь j = 6, условие теперь неверно, и циклы продолжаются еще на 40 шагов.
Когда вы помещаете ярлык, переходите к "уровню" метки, поэтому пропуски двух циклов пропускаются.
Без метки, break
выйдет из внутреннего цикла. С помощью метки вы можете остановить выполнение вложенных циклов.
См. примеры:
https://developer.mozilla.org/en/JavaScript/Reference/Statements/label
Использование break
без метки разбивает самый внутренний цикл, который в настоящее время выполняется.
Использование break
с меткой foo
разбивает оператор с надписью foo
.
Оператор
break
включает необязательную метку, которая позволяет программе вырваться из помеченного оператора. Операторbreak
должен быть вложен в этот помеченный оператор. Обозначенный оператор может быть любым выражением block; ему не обязательно должен предшествовать оператор цикла.
разрыв предоставляется только для внутреннего цикла. поэтому он прерывает только внутренний цикл, когда я = j = 5. но внешний цикл продолжает вращаться в 10 раз. поэтому, когда я = j = 5, цикл будет вращаться только 5 раз, а в остальных случаях он будет вращаться 10 раз.
когда вы используете разрыв без метки, он разбивает только внутренний цикл, который равен (i = 5 j = 6), (i = 5 j = 7), (i = 5 j = 8), (i = 5 j = 9), и цикл снова начинается с (i = 6 j = 0) до (i = 9 j = 9), а также count (num ++) startsthats, почему он показывает результат как 95.
bt, когда вы используете break с ярлыком i.e. break outermost, он вырывается из метки цикла как внешний (т.е. внешний цикл), вот почему6 он дает результат как 55
Первый из них только разбивает ваш цикл "j". После его прерывания он возвращается в ваш цикл "i" и увеличивает "i" до 6. Когда "i" равно 6, он возвращается в цикл "j", и условие if больше не выполняется. Таким образом, он продолжает складывать "num".