for循環里面的break;和continue;語句


for循環里面的break;continue;語句

 

break語句

哇,我已經找到我要的答案了,我不需要進行更多的循環了!

比如,尋找第一個能被5整除的數:

for循環中,如果遇見了break語句,這個for循環就會立即終止,不在進行其他的迭代了。

  for(var i = 1 ; i <= 100; i++){

    console.log(i);

    if(i == 5){

      break; //找到了一個,就立即終止循環

    }

  }

 

break語句只能跳出當前所在的最內層循環:

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

  //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會立即終止執行后面的語句,然后進入下一次迭代了。

  for(var i = 1 ; i <= 100 ; i++){

    if(i == 5){

      continue;   //i5的時候,立即終止執行后面的console語句,直接i6了。

    }

    console.log(i);

  }

 

同樣的,continue只能終端當前最內層的for,外層for要加label


breakcontinue的目的,就是優化算法的。

 

尋找質數的方法:

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM