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...