js技巧--while循環的妙用

js while循環的妙用

在JavaScript裏面,通常咱們想讓程序在function裏面執行到一半時,通過判斷或者完成某種操做後中止執行後面的代碼,會用return結束掉function。bash

fuction(){
    //do something...
    if(stopRun == true){
        return
    }
    //continue do ...
}
複製代碼

可是,若是我要作多層的判斷,並且要中斷的只是其中一個判斷後面的代碼呢?函數

function(){
    //代碼1...
    if(stopRun == true){
        //代碼2 ...
        if(cando == false){
            return
        }
        //代碼3 ...
    }
    //代碼4 ...
}
複製代碼

如上面的邏輯,cando 判斷只是想阻止‘代碼3’的執行,而‘代碼4’我仍是須要的,可是return操做已經把整個function結束掉了。 那麼下面重點來了,能夠妙用while break來實現代碼的中斷,而不結束整個函數。ui

var stopRun = true,cando = false;
function ww(){
    //代碼1...
    while(stopRun == true){
        //代碼2 ...
        console.log(2)
        if(cando == false){
            break
        }
        //代碼3 ...
        console.log(3)
        break
    }
    //代碼4 ...
    console.log(4)
}
複製代碼

以上代碼輸出了spa

2 4
複製代碼

證實代碼3被阻止了,可是沒有阻止function後面代碼的執行。code

break不能在if裏面用,可是能夠在循環裏面用,因此用while這樣的循環語句能夠中斷代碼的執行,理論上全部循環均可以實現該功能,選擇while是由於它簡潔並且能夠代替if作判斷。ip

!!!注意!!! while最後記得加上一個break,否則會變成死循環。get

能夠在while中間加入多個if()break做爲斷點,控制邏輯的流程。string

function(){
    var a=0;
    while(a==0){
        console.log("我要")
        a++
        if(a!=1)break
        console.log("我再要")
        a++
        if(a!=2)break
        console.log("我還要")
        break
    }
}
複製代碼

本人原文連接www.jianshu.com/p/9b0eee5be…it

相關文章
相關標籤/搜索