break 和 continue的區別及如何終止外層循環

這是我參與8月更文挑戰的第9天,活動詳情查看:8月更文挑戰html

break 和 continue 這兩個語句的出現能夠幫助咱們大量的優化代碼,減小了計算機的計算次數。可是很容易混淆它們的用法.web

break

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

  • break 語句的做用能夠當即中止當前的 for、do while、while 循環。 
  • 根據一些條件設置 break 位置,直到循環可以執行到 break 語句當即中止執行,跳出循環

注意post

  • break 若是沒有特殊指示,只能中止本身所在的那一層循環,並不能終止外部循環。(例1)
  • 若是想中止外層循環,能夠給外層循環添加一個標籤名 label,在內層循環的 break 關鍵字後面空格加一個 label 名。(例2)

例1

for (var i = 1; i<=4; i++){
            for (var j = 1; j<=4; j++){
                console.log(i,j);
                if (j >= 2){
                    break;
                }
            }
        }
複製代碼

輸出:優化

image.png

這裏咱們能夠看到, break只是終止了內層的循環, 外層的循環還在繼續, 只有內層循環中知足if條件j>=2的部分不會再執行了url

例2

lable: for (var i = 1; i<=4; i++){
            for (var j = 1; j<=4; j++){
                console.log(i,j);
                if (j >= 2){
                    break lable;
                }
            }
        }
複製代碼

輸出:spa

image.png

當爲break設置標籤終止外部循環時, 能夠看到全部i>=2的部分都不會執行了.3d

continue

這個答案不是我想要的,趕忙試試下一個吧!code

遇到 continue 表示當前的一次循環數據不是咱們想要的,會當即中止當前次的循環,當即進入下一次循環orm


注意

  • 要根據特殊條件設置 continue 的位置。
  • continue 若是沒有特殊指示只能進入本身的下一次循環,不能當即中止外層循環的這一次進入下一次
  • 控制外層循環的方式與 break 同樣,都是添加外層的標籤名。(例1)

例1

for (var i = 1; i<=4; i++){
            for (var j = 1; j<=4; j++){
                if (j >= 3){
                    continue;
                }
                console.log(i,j)
            }
        }
複製代碼

輸出:

image.png

例2

lable: for (var i = 1; i<=4; i++){
            for (var j = 1; j<=4; j++){
                if (j >= 3){
                    continue lable;
                }
                console.log(i,j)
            }
        }
複製代碼

輸出:

image.png

在這兩個例題中, 使用continue結束內層仍是外層循環獲得的結果並無區別.

小結

break語句能夠跳出當前循環;

break語句一般配合if,在知足條件時提早結束整個循環;

break語句老是跳出最近的一層循環;

continue語句能夠提早結束本次循環;

continue語句一般配合if,在知足條件時提早結束本次循環。

相關文章
相關標籤/搜索