天天看點

JavaScript中for循環和while循環使用continue的差別

示例:求1~9中除了5之外所有數相加之和。

使用while循環中用continue的代碼:

var i=1,n=0;
while(i<10){
    if(i==5){
        i++;
        continue;
    }
    n=n+i;
    i++;
}
document.write(n);
           

使用for循環中使用continue的代碼:

var n=0;
for(var i=1;i<10;i++){
    if(i==5){
       continue;
    }
    else{
       n=n+i;
    }
}
document.write(n);
           

由于for循環的增量計算i++在for()内,是上次循環結束後才執行i++,是以for循環中這樣使用continue是完全沒有問題的。當然,上述代碼中在if(i==5){}中花括号内不寫任何代碼,for和while循環這段代碼也是正确的,空的花括号{}不執行任何操作。

錯誤代碼:

var i=1,n=0;
while(i<10){
    if(i==5){
        continue;
    }
    n=n+i;
    i++;
}
document.write(n);
           

這個代碼中while循環語句會在continue處會跳出本次循環,不再執行接下去的代碼語句,變量就沒有進行增量操作,導緻陷入死循環。這簡直就是while循環中使用continue陷入的巨坑。

繼續閱讀