重學JS(八)—— 跳出迴圈
遇到過幾個迴圈的問題,寫篇文章總結下。
語法
break:立即退出迴圈,強制執行迴圈後面的語句。
continue:立即退出迴圈,回到迴圈頂部繼續執行程式碼。
寫個例子感受下
let num = 0;
for(let i=0;i<10;i++){
if(i == 3)
break;
num++;
}
console.log(num); //3
num = 0;
for(let i=0;i<10;i++){
if(i == 3)
continue;
num++;
}
console.log(num); //9
差距明顯了,break跳出所有迴圈,continue只跳過當前迴圈,所以只減少了1次 num自加的過程。
跳出多層迴圈
有時會有跳出多層迴圈的需求,內層迴圈滿足某個條件時,立刻退出。
let num = 0;
for(let i=0;i<10;i++){
for(let j=0;j<10;j++){
if(j == 3)
break;
num++;
}
}
console.log(num); //30
在內層迴圈中使用break,只會跳出內層迴圈,外層的迴圈還在繼續工作。
如果想要跳出全部迴圈,該怎麼辦?
可以使用label語句。它可以在程式碼中新增標籤,以便將來使用。
let num = 0;
outer: //這裡就是label語句了
for(let i=0;i<10;i++){
for(let j=0;j<10;j++){
if(j == 3)
break outer;
num++;
}
}
console.log(num); //3。只有3,顯然連外層迴圈都跳出了。
break和continue語句都可以與label語句聯合使用,從而返回程式碼中特定的位置。
let num = 0;
outer:
for(let i=0;i<10;i++){
for(let j=0;j<10;j++){
if(j == 3)
continue outer;
num++;
}
}
console.log(num); //30
上述情況下,continuet語句會強制繼續執行迴圈——退出內部迴圈,執行外部迴圈。此時和內部迴圈中使用break效果一致。
return
程式碼中經常會出現這樣的句子
//如果未通過校驗就返回,下面的程式碼將不會再執行
if(!checkResult)
return
那麼他能用來跳出迴圈嗎?理論上是可行的,畢竟它是把整個函式結束了,試試。
let num = 0;
function test(){
for(let i=0;i<10;i++){
if(i == 3)
return;
num++;
}
console.log('finish');
}
test();
console.log(num); //3
可見他跳出了迴圈。注意,return語句就是用於指定函式返回的值。return語句只能出現在函式體內,出現在程式碼中的其他任何地方都會造成語法錯誤。因為return直接把函式返回了,所以finish沒有被列印出來。如果是break或者continue就會列印出來。
再試試跳出多層迴圈。
let num = 0;
function test(){
for(let i=0;i<10;i++){
for(let j=0;j<10;j++){
if(j == 3)
return;
num++;
}
}
}
test();
console.log(num); //3
可以。如果將需要用到多層迴圈的這部分程式碼封裝到一個函式中,不失為一個好辦法。
其他迴圈
break continue也可以用於for in,for of,while迴圈。
let obj = {
a:1,
b:2,
c:3,
d:4
}
let num = 0;
for(let key in obj){
if(key == "b")
break;
num++;
}
console.log(num); //1
num = 0;
for(let key in obj){
if(key == "b")
continue;
num++;
}
console.log(num); //3
forEach迴圈,break、continue、return命令都不能奏效。
相關文章
- java跳出多重迴圈Java
- js 跳出迴圈/結束遍歷的方法JS
- JavaScript跳出for迴圈語句JavaScript
- python 跳出巢狀迴圈方法Python巢狀
- 三種跳出迴圈的方法--9個jsp內建物件JS物件
- 【JavaScript實用技巧(一)】迴圈遍歷與跳出迴圈遍歷JavaScript
- 如何在Python語言中跳出for迴圈?Python
- 【基礎題】【for迴圈】二重迴圈
- python 利用 for ... else 跳出雙層巢狀迴圈Python巢狀
- 如何跳出jquery的each()函式迴圈語句jQuery函式
- 如何跳出當前jquery.each()函式迴圈jQuery函式
- for迴圈、break和continue、二重迴圈
- Oracle儲存過程中跳出迴圈的寫法Oracle儲存過程
- JS事件迴圈JS事件
- JS優化迴圈之展開迴圈JS優化
- Casperjs迴圈執行(重複執行不退出)JS
- JAVA多層迴圈裡面怎麼一個break直接跳出到最外層迴圈位置Java
- 第 7 節:流程控制-迴圈練習-跳出語句
- Java 可以採用什麼語句跳出迴圈語句Java
- nodejs事件迴圈NodeJS事件
- js跳出迴圈的方法區別( break, continue, return ) 及 $.each 的(return true 和 return false)...JSFalse
- c語言中,while(1)語句使用break語句跳出迴圈C語言While
- Java入門學習-學習if & else,for迴圈,foreach迴圈,while迴圈的用法。JavaWhile
- JS事件迴圈Event LoopJS事件OOP
- JS 事件迴圈(Event Loop)JS事件OOP
- JS事件迴圈EventLoop初探JS事件OOP
- JS事件迴圈詳解JS事件
- js jquery 結束迴圈JSjQuery
- Java Lambda表示式forEach無法跳出迴圈的解決思路Java
- while迴圈修改條件後無法跳出的疑惑(已解決)While
- 2024-03-21 跳出forEach迴圈的3個方法
- 學習Rust 迴圈Rust
- JS專題之事件迴圈JS事件
- JS 總結之事件迴圈JS事件
- JS效能優化 之 FOR迴圈JS優化
- JS迴圈和條件分支JS
- js--事件迴圈機制JS事件
- 剖析nodejs的事件迴圈NodeJS事件