JavaScript 循環(huán)控制

2021-08-27 14:46 更新

循環(huán)控制

JavaScript 提供您完全控制來(lái)處理你的 loops 循環(huán)體和 switch 語(yǔ)句??赡軙?huì)有這樣一種情形,你需要在還沒有到達(dá)循環(huán)體底部的時(shí)候跳出 loop 循環(huán)體。也可能存在這樣的情況,當(dāng)你想跳過(guò)一個(gè)代碼塊的一部分,想要開始下一個(gè)迭代。

為處理所有這些情況, JavaScript 提供了 breakcontinue語(yǔ)句。這些語(yǔ)句用于立即跳出來(lái)任何循環(huán)或開始下一個(gè)迭代循環(huán)。

Break 語(yǔ)句

Break語(yǔ)句,簡(jiǎn)要介紹了switch語(yǔ)句,用于早期退出循環(huán),打破封閉的花括號(hào)。

舉例

這個(gè)例子演示了在一個(gè)while循環(huán)體內(nèi)使用break語(yǔ)句。注意是怎樣在x 等于5之前跳出循環(huán)體到達(dá)大括號(hào)下面的. write(. .)語(yǔ)句。

var x = 1;
document.write("Entering the loop<br /> ");
while(x < 20){
    if(x == 5){ 
        break;  // breaks out of loop completely
     }
     x = x + 1;
     document.write( x + "<br />");
}
document.write("Exiting the loop!<br /> "); 

產(chǎn)生的結(jié)果如下:

Entering the loop2
3
4
5
Exiting the loop!  

我們已經(jīng)見過(guò)在switch語(yǔ)句里面使用break語(yǔ)句。

Continue 語(yǔ)句

Continue語(yǔ)句告訴解釋器立即開始下一次迭代的循環(huán)和跳過(guò)剩余的代碼塊。

當(dāng)遇到continue語(yǔ)句,程序流將立即循環(huán)檢查表達(dá)式,如果條件保持真那么下個(gè)迭代開始,否則控制跳出循環(huán)體。

舉例

這個(gè)例子展示了 continue 語(yǔ)句在 while 循環(huán)語(yǔ)句的使用。當(dāng)變量x達(dá)到5時(shí), continue 語(yǔ)句用于跳過(guò) print 語(yǔ)句。

var x = 1;
document.write("Entering the loop<br /> ");
while(x < 10){
    x = x + 1;
    if(x == 5){ 
        continue;  // skill rest of the loop body
    }
document.write( x + "<br />");
}
document.write("Exiting the loop!<br /> ");

產(chǎn)生結(jié)果如下:

Entering the loop2
3
4
6
7
8
9
10
Exiting the loop!

使用標(biāo)簽來(lái)控制流

JavaScript 1.2 ,開始,一個(gè)標(biāo)簽可以被用于 break , continue 語(yǔ)句去更精確地控制流。

一個(gè)標(biāo)簽僅僅是一個(gè)標(biāo)識(shí)符后跟一個(gè)冒號(hào),應(yīng)用于聲明或代碼塊。我們將看到兩個(gè)不同的例子來(lái)理解標(biāo)簽 breakcontinue 。

注意: continuebreak 語(yǔ)句及其標(biāo)簽的名字之間不允許有換行符。當(dāng)然標(biāo)簽名稱和其后的的循環(huán)體之間也不應(yīng)當(dāng)有任何其他語(yǔ)句。

例 1

document.write("Entering the loop!<br /> ");
outerloop:   // This is the label name
for(var i = 0; i< 5; i++){
    document.write("Outerloop: " + i + "<br />");
    innerloop:
    for (var j = 0; j < 5; j++){
        if(j >  3 ) break ; // Quit the innermost loop
        if(i == 2) break innerloop; // Do the same thing
        if(i == 4) break outerloop; // Quit the outer loop
        document.write("Innerloop: " + j + "  <br />");
    }
}
document.write("Exiting the loop!<br /> "); 

將會(huì)產(chǎn)生如下的結(jié)果:

Entering the loop!
Outerloop: 0
Innerloop: 0 
Innerloop: 1 
Innerloop: 2 
Innerloop: 3 
Outerloop: 1
Innerloop: 0 
Innerloop: 1 
Innerloop: 2 
Innerloop: 3 
Outerloop: 2
Outerloop: 3
Innerloop: 0 
Innerloop: 1 
Innerloop: 2 
Innerloop: 3 
Outerloop: 4
Exiting the loop!

例 2

document.write("Entering the loop!<br /> ");
outerloop:   // This is the label name
for(var i = 0; i< 3; i++){
    document.write("Outerloop: " + i + "<br />");
    for(var j = 0; j < 5; j++){
        if(j == 3){
            continue outerloop;
        }
        document.write("Innerloop: " + j + "<br />");
    } 
}
document.write("Exiting the loop!<br /> ");

結(jié)果如下:

Entering the loop
Outerloop: 0

Innerloop: 0

Innerloop: 1

Innerloop: 2

Outerloop: 1

Innerloop: 0

Innerloop: 1

Innerloop: 2

Outerloop: 2

Innerloop: 0

Innerloop: 1

Innerloop: 2

Exiting the loop!


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)