js for等迴圈 跳出多層迴圈

2022-07-17 08:21:08 字數 1302 閱讀 6803

js for 迴圈 跳出多層迴圈

var a = [1,2,3,4,5,6,7,8]; //

8個數var b = [11,12,13,14,15,3,16,17]; //

8個數testfor();

console.log(

'555')

function testfor()

console.log(

'111');

}console.log(

'2222');

}console.log(

'333');

}}輸出://

1次444

//8次111

//1次222

//8次111

//1次222

//5次111

//1次555

可見 return 會直接跳出多層迴圈,返**用的方法外部

原因: js裡for是沒有區域性作用域的概念,方法才能乙個區域性作用域

return將會跳出當前區域性作用繼續執行下面的方法

注意:1.這裡for迴圈如果直接放在全域性作用域下執行而不被乙個方法包裹,

將直接導致寫在for後的**永遠不會被執行;

2.如遇到邏輯特別複雜多層迴圈的時候,會遇到一些迭代器之類的方法,

這種迭代器實現的不同,會出現另一種情況,即不會跳出任何迴圈,

迴圈仍然繼續,只是當前迴圈if後的**不會被執行一次,下一次迴圈開始時,

仍然會執行if後的**

如:var cc = 'xx';

object.keys(o).foreach(function(key)

console.log(key);

});此外還有

break;

continue;

語句break 語句跳出迴圈後,會繼續執行該迴圈之後的** (退出迴圈)

continue continue 語句中斷迴圈中的迭代,如果出現了指定的條件,然後繼續迴圈中的下乙個迭代。(跳過當前迭代,進入下次迭代)

這兩個語句可以指定label從而可以退出特定的迴圈

bbq:

for(var j=0;j)

}}或者:

function testfor()

console.log('j

'+j);

}console.log('i

'+i);

}console.log('k

'+k);

}}

// 只會每次迴圈j==2時退出ddd迴圈然後外面的迴圈都會繼續迴圈

迴圈跳出條件

1.continue def func1 for i in range 1 10 if i 2 0 continue if判斷後,如果為true則跳過continue後面的語句 如果為false,則繼續執行continue後面的語句 print i func1 輸出結果 1,3,5,7,9135 7...

flag跳出多層迴圈

有時候我們需要從第三層的for迴圈直接跳出第二層的while迴圈,進入第一層迴圈,只用break就做不到了,這時候我們可以用flag.1 用法1 定義標識為ture,然後while flag,比如驗證登入資訊,驗證成功直接改變標識狀態為false,直接跳到第一層while迴圈 不執行else裡的 如...

跳出多層迴圈for while

break flag false for i in range 10 print 爺爺層 i for j in range 10 print 爸爸層 j if j 3 break flag true break for k in range 10 print 孫子層 k if k 2 break f...