for循环中break和continue的区别

break

会立即退出循环,强制执行循环后面的语句
默认只会终止紧邻的循环,如果要终止其他循环,需要给循环起名字
例如:

name:for(var i = 0; i < 5; i++){
    for(var j = 0; j < 5; j++){
        if(i == 3 && j == 3){
            break name
        }
        console.log(i,j)
    }
}

continue

立即退出循环,但退出循环后会从循环的顶部开始执行

例子(解释): 当 i  =  5 的时候,终止此次循环,再从循环顶部开始执行  i  =  6及之后的(只会终止 i = 5 时的这一步循环,其他照常进行)
返回 : 8;

var iNum = 0;
for(var i = 1; i < 10; i++){
    if(i % 5 == 0){
        continue;
    }
    iNum++
}
alert(iNum)

返回: 99 (此时只是终止了紧邻那一层的满足条件时的循环,当 i = 5 且  j = 5 时,终止了 j 循环里面的 j = 5 的这一次循环,其他继续);

var iNum = 0;
for(var i = 0; i < 10; i++){
     for(var j = 0; j < 10; j++){
        if(i == 5 && j == 5){
            continue
        }
        iNum++
     }
}
console.log(iNum)

返回 : 95 (终止了命名那一层的循环,也就是当条件满足时,就终止了 i = 5的循环,跳到 i  =  6开始继续循环)

var iNum = 0;
outermost:for(var i = 0; i < 10; i++){
    for(var j = 0; j < 10; j++){
        if(i == 5 && j == 5){
            continue outermost
        }
        iNum++
    }
}
console.log(iNum);
posted @ 2017-09-10 15:36  巨小婴  阅读(762)  评论(0编辑  收藏  举报