JavaScript 提供您完全控制來(lái)處理你的 loops 循環(huán)體和 switch 語(yǔ)句??赡軙?huì)有這樣一種情形,你需要在還沒有到達(dá)循環(huán)體底部的時(shí)候跳出 loop 循環(huán)體。也可能存在這樣的情況,當(dāng)你想跳過(guò)一個(gè)代碼塊的一部分,想要開始下一個(gè)迭代。
為處理所有這些情況, JavaScript 提供了 break 和 continue語(yǔ)句。這些語(yǔ)句用于立即跳出來(lái)任何循環(huán)或開始下一個(gè)迭代循環(huán)。
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 loop
2 3 4 5Exiting the loop!
我們已經(jīng)見過(guò)在switch語(yǔ)句里面使用break語(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 loop
2
3
4
6
7
8
9
10
Exiting the loop!
從 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)簽 break 和 continue 。
注意: continue 或 break 語(yǔ)句及其標(biāo)簽的名字之間不允許有換行符。當(dāng)然標(biāo)簽名稱和其后的的循環(huán)體之間也不應(yīng)當(dāng)有任何其他語(yǔ)句。
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!
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!
更多建議: