【转】详谈for循环里面的break和continue语句
https://www.jb51.net/article/119099.htm
轉載 ?更新時間:2017年07月20日 07:53:06 ? 投稿:jingxian ? 我要評論
?
下面小編就為大家帶來一篇詳談for循環里面的break和continue語句。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
?
break語句
哇,我已經找到我要的答案了,我不需要進行更多的循環了!
比如,尋找第一個能被5整除的數:
for循環中,如果遇見了break語句,這個for循環就會立即終止,不在進行其他的迭代了。
?
| 1 2 3 4 5 6 7 8 9 10 11 | for(var i = 1 ; i <= 100; i++){ ? console.log(i); ? if(i == 5){ ? break; //找到了一個,就立即終止循環 ? } ? } |
break語句只能跳出當前所在的最內層循環:
?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | //break只中斷了最內層循環,外層循環還在繼續 ? for(var i = 1 ; i <= 10 ; i++){ ? for(var j = 1 ; j <= 10 ; j++){ ? console.log(i,j); ? if(j == 5){ ? break; ? } ? } ? } |
如果你這個break就是想終止所有的循環,那么JS中允許你給循環語句加label
?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | //break只能終止內層循環,但是我們就是想要終止外層循環 ? //就要給外層循環加label: ? waiceng : for(var i = 1 ; i <= 10 ; i++){ ? for(var j = 1 ; j <= 10 ; j++){ ? console.log(i,j); ? if(j == 5){ ? break waiceng; //break label的語法 ? } ? } ? } |
continue語句
呃,這個答案不是我想要的,趕緊試試下一個數字吧!
遇見continue語句,for會立即終止執行后面的語句,然后進入下一次迭代了。
?
| 1 2 3 4 5 6 7 8 9 10 11 | for(var i = 1 ; i <= 100 ; i++){ ? if(i == 5){ ? continue;? //當i為5的時候,立即終止執行后面的console語句,直接i為6了。 ? } ? console.log(i); ? } |
同樣的,continue只能終端當前最內層的for,外層for要加label。
break和continue的目的,就是優化算法的。
尋找質數的方法:
?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <script type="text/javascript"> ? ?//尋找2~100之內的所有質數 ? ?waiceng : ? ?for(var i = 2 ; i <= 100 ; i++){ ? ?//我們要測試i是不是質數,之前我們的算法是測試i的約數個數(不包括1和自己) ? ?//約數個數如果為0,那么就是質數。 ? ?//憑什么我要測試約數個數?? ? ?//只要你有約數,你就不是質數!!!! ? ? for(var j = 2 ; j <= Math.sqrt(i) ; j++){ ? ? if(i % j == 0){ ? ?? continue waiceng; //如果這數字,被某一個數字整除了,那么立即放棄他 ? ???? //開始驗證下一個i ? ? } ? } ? ? ? ? console.log(i); //如果一個數字有約數,就會執行continue,就遇不見這個語句了。 ? ?} ? </script> |
以上這篇詳談for循環里面的break和continue語句就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
總結
以上是生活随笔為你收集整理的【转】详谈for循环里面的break和continue语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 11.26报错
- 下一篇: STM32利用库函数驱动OLED