JavaScript continue使用
上一章讲了break的时候,break是会直接中断当前的循环。但是continue不会中断循环,而是会跳过当前条件,进行下一个条件。
for( var i = 1; i < 5; i++){ for(var j = 1; j < 5; j++){ if( j == 2 ) { continue; //这个continue会直接结束当前条件语句,进行下一次的条件语句 } console.log(i, j); } }
在上面这个案例中,当 i = 1,的时候, j = 1,循环继续进行,输出(1,1);但是当 i = 1 , j = 2 的时候,上一张遇到了break,所以直接跳出当前循环,但是这里是continue,所以他会跳过当前条件,进行下一个条件,所以不会有当前的console.log(i, j); 会直接进入j=3;
每当遇到 j = 2, 循环就会跳过,进行下一个条件。
所以结果是 (1,1), (1,3),(1,4),
(2,1), (2,3),(2,4),
(3,1), (3,3),(3,4),
(4,1), (4,3),(4,4)
之前break中有个标签控制,continue当然也有
label : for( var i = 1; i < 5; i++){ for(var j = 1; j < 5; j++){ if( j == 2 ) { continue label; //这个continue会直接结束当前条件语句,进行下一次的条件语句 } console.log(i, j); } }
在这个例子中,当遇到了continue,他就跳过了外层的for循环,外层跳过了,当然内层也不运行了。 所以当 i = 1,的时候, j = 1,循环继续进行,输出(1,1);但是当 i = 1 , j = 2 的时候, 带有标签label的外层for循环就被跳过,所以就直接进行了 i = 2 的情况。当 i = 2,的时候, j = 1,循环继续进行,输出(2,1);但是当 i = 2 , j = 2 的时候, 又一次遇到了continue,所以i = 2的循环有一次被跳过,所以就进行了 i = 3, i = 4;
所以最后的结果是: (1,1),(2,1),(3,1),(4,1)