我们先写一个双重循环语句
top:
for (var i = 0; i < 3; i++){ //for1
for (var j = 0; j < 3; j++){ //for2
if (i === 1 && j === 1) break top;
console.log('i=' + i + ', j=' + j);
}
}
// i=0, j=0
// i=0, j=1
// i=0, j=2
// i=1, j=0
根据js顺序定义,for1先执行,执行完后执行for2(此时for1中的i还没有为2,需要一个语句借宿后才+1),for2的条件语句执行完后与for1一样,j未+1。
执行完for2中的if后,此时输出 i = 0, j = 0 ;
注意:此时并没有跳出for2,在for2中循环,所以有i = 0,j = 1的输出;
直到j = 3时,跳出了for2的循环,此时for1的第一个循环结束,i++生效;
for1的第二个循环开始时,i=1,for2循环重新开始啦...
top:
for (var i = 0; i < 3; i++){
for (var j = 0; j < 3; j++){
console.log('i=' + i + ', j=' + j);
if (i === 1 && j === 1) break top;
}
}
// i=0, j=0
// i=0, j=1
// i=0, j=2
// i=1, j=0
// i=1, j=1
参照此代码可知循环过程