循環裡continue,break,return的作用,你知道嗎?

2021-02-19 程式設計師大咖
前言

循環裡Continue,Break,Return經常會用到,也是很容易出錯的一個坑,今天特地花個時間來總結下,在循環裡使用Continue,Break,Return的不同效果是什麼?

Continue 語句涵義

C 語言中的 continue 語句有點像 break 語句,所不同的是,它不是強制終止,continue 會跳過當前循環中的代碼,強迫開始下一次循環迭代。

對於 for 循環,continue 語句執行後,自增語句仍然會執行

對於 while 和 do...while 循環,continue 語句重新執行條件判斷語句

語法流程圖實例

多層 for 循環實例如下:

#include <stdio.h>
 
int main ()
{
 int i=0,j=0;
 for (i = 0; i < 4; i++ )
 {
  printf("i 的值: %d\n",i);
  for (j = 0; j < 3; j++ )
  {
   if( j==1){
    continue;
   }
   printf("j 的值: %d\n",j);
  }
 }
   return 0;
}

編譯結果如下,我們可以得出結論,在雙層FOR循環中,在內循環使用Continue,只會在內循環中跳過此處循環,小循環繼續執行,不會跳過大循環。

我們再舉一個while循環的例子如下:

#include <stdio.h>
 
int main ()
{
   int a = 0;
   do
   {
      if( a == 5)
      {
         /* 跳過迭代 */
         a = a + 1;
         continue;
      }
      printf("a 的值: %d\n", a);
      a++;
     
   }while( a < 10 );
 
   return 0;
}

輸出如下:

Break 語句

在循環中,關鍵詞Break,作用是跳出循環,一般有以下兩種用法:

當 break 語句出現在一個循環內時,循環會立即終止,且程序流將繼續執行緊接著循環的下一條語句。

它可用於終止 switch 語句中的一個 case。

如果使用的是嵌套循環,break 語句會停止執行最內層的循環,然後開始執行該塊之後的下一行代碼。

注意:

break語句對if-else的條件語句不起作用。

由於它是用來退出循環或者switch語句的, 所以只有當它出現在這些語句的時候, 這種形式的break語句才是合法的。

語法流程圖實例

如下:

#include <stdio.h>
 
int main ()
{
 int i=0,j=0;
 for (i = 0; i < 4; i++ )
 {
  printf("i 的值: %d\n",i);
  for (j = 0; j < 3; j++ )
  {
   if( j==1){
    break;
   }
   printf("j 的值: %d\n",j);
  }
  printf("\n");
 }
   return 0;
}

編譯結果如下,我們可以看到在雙層FOR循環中,在內循環使用Break,只會在內循環中結束本次循環,小循環結束此次執行,不會跳過大循環。

我們再舉一個while循環的例子如下:

#include <stdio.h>

int main ()
{
   int a = 0;
   do
   {
      printf("a 的值:%d\n" , a );
       a = a + 1;
       if( a > 5)
       {
          // 終止循環
          break;
       }
   }while( a < 10 );
 
   return 0;
}

輸出如下:

Return

在循環中,Return語句,作用是結束本次循環,將函數調用棧彈棧,恢復現場。

說的簡單點兒就是結束當前的函數,返回函數執行結果,回到本函數被調用處繼續執行。

我們舉個例子如下:

#include <stdio.h>
 
int main ()
{
 int i=0,j=0;
 for (i = 0; i < 4; i++ )
 {
  printf("i 的值: %d\n",i);
  for (j = 0; j < 3; j++ )
  {
   if( j==1){
    return;
   }
   printf("j 的值: %d\n",j);
  }
 }
   return 0;
}

輸出如下:

提問思考?

不知道大對上面的解釋有沒有理解清楚,這裡提出3個問題,如果一看即知道答案,那麼肯定沒有問題了。

同樣是跳出循環,return和break有什麼區別?

同樣是中斷執行,return和return false有什麼區別?

在什麼應用場景下我們會用到break或continue?

相關焦點

  • 詳解C#break ,continue, return
    break ,continue, return這三個常用的關鍵字的學習對於我們編程開發是十分有用的,那麼本文就向你介紹break ,continue, return具體的語法規範。C#編程語法中我們會碰到break ,continue, return這三個常用的關鍵字,那麼關於這三個關鍵字的使用具體的操作是什麼呢?我們在使用這三關鍵字的時候需要注意和需要理解的規則是什麼呢?讓我們開始介紹吧:一、C#編程語法之break語句:break語句會使運行的程序立刻退出包含在最內層的循環或者退出一個switch語句。
  • break, continue 和 return 的用法及區別
    break, continue 和 return 的用法及區別return:是函數返回語句,返回的同時函數也會停止執行。break:語句會跳出循環,但是會繼續執行循環之後的代碼(跳出循環)。continue:語句會跳過當前迭代,進入下一個迭代。
  • 【面試寶典】continue、break和return
    面試解析:面試中經常會問continue、break和return這些關鍵字的基本用法,這是最最基本的基本功,如果這個問題回答不上來那幾基本上就沒戲了。1、continue:結束當前的循環,繼續進行下次循環。
  • C語言:break和continue都是跳出循環,有啥區別?
    ,而break可用於循環和 switch 語句,兩者都是輔助循環;儘管如此,如果 switch 語句在一個循環中,continue便可作為 switch 語句的一部分;這種情況下,就像在其他循環中一樣,continue 讓程序跳出循環的剩餘部分,包括 switch 語句的其他部分。
  • C語言中,break和continue都是跳出循環,有啥區別?
    一般而言,程序進入循環後,在下一次循環測試之前會執行完循環體內部的所有語句。而continue和break語句可以根據循環體內部的測試結果來忽略一部分循環內容,甚至結束循環。c 語言中循環語句有 3 種:while();        do     while();         for;且 3 種循環都可以使用 continue 和 break 語句對於continue語句,執行到該語句時,會跳過本次迭代的剩餘部分,並開始下一輪迭代;但是若 continue 語句在嵌套循環的內部
  • 解析PHP跳出循環的方法以及continue、break、exit的區別介紹
    >結果:134continuecontinue 是用來用在循環結構中,控制程序放棄本次循環continue語句之後的代碼並轉而進行下一次循環。continue本身並不跳出循環結構,只是放棄這一次循環。如果在非循環結構中(例如if語句中,switch語句中)使用continue,程序將會出錯。
  • C#基礎:跳轉語句(break,continue,goto,return,throw)
    及時有效的跳轉 將有助於提升程序的執行效率--break     語句用於終止最近的封閉循環或它所在的 switch 語句。
  • C++關鍵字:break和continue在循環語句中的使用
    /***************************************************************************關鍵字:break和continue的演示使用在任何一個while,do_while或for循環的結構體中,都能夠使用break和continue
  • 優秀的程式設計師極少用break或者continue語句
    寫程序應該儘量的避免使用break和continuefor、while循環語句裡出現return是沒有問題的,但如果你的循環裡出現了break和continue,往往是因為對循環的邏輯沒有考慮情況,考慮周全了基本不需要break和continue。
  • 為什麼許多程式設計師從來都不用break或者continue語句?
    和continuefor、while循環語句裡出現return是沒有問題的,但如果你的循環裡出現了break和continue,往往是因為對循環的邏輯沒有考慮情況,考慮周全了基本不需要break和continue。
  • python系列15:跳出循環:break與continue
    可以使用break與continue來代替判斷:continue 語句跳出本次循環,而break跳出整個循環。比如如果遇到空格,則使用continue 跳出本次循環,如果遇到』o』則直接結束循環,不通過控制條件變量的方式來實現,可以用break,大致如下:while 條件變量 < str_condiion的長度:if 條件變量 = 『 』 :continueelif 條件變量 = 『o』:breakelse:
  • 程式設計師:詳解break和continue的使用及在循環內switch中使用
    1.break表示跳出循環體2.continue表示結束本次循環(ps:本文重點分析在循環內switch中使用特性)3.break示例,當滿足條件,觸發break,跳出循環體,for循環結束!>控制臺輸出:a b4.continue示例,當滿足條件,觸發continue,跳出本次循環,循環體繼續運行!
  • Java語法break和continue的區別
    這個時候有點摸不清是要使用break還是continue了,做過試驗後,在此記錄一下,增強記憶,並方便今後的查詢。continue:跳出本次循環繼續下一次循環break:  跳出循環體,繼續執行循環外的函數體return:   跳出整個函數體,函數體後面的部分不再執行public static void main
  • Java循環結構之break與continue關鍵字
    各位小夥伴,大家好,這次小編要介紹的是,Java循環結構中break與continue關鍵字的用法,首先我們來介紹一下break關鍵字。還有一點,大家也要注意:一般情況下,次數確定的場景用for循環,否則用while循環。接下來,小編要介紹的是continue關鍵字:一旦執行,立刻跳過當前循環剩餘內容,馬上開始下一次循環。
  • Python編程10:跳出循環結構之break和continue
    下面我們通過在這段代碼裡添加continue或break來看這兩個關鍵字的用法。break:跳出循環如果想完全跳出循環,可以使用break語句實現。我們在圖1的代碼裡添加break語句,如圖2:注意:這裡要提醒注意的是代碼的縮進,我們知道Python的代碼縮進體現了代碼的邏輯。for循環下面的代碼塊縮進了一層,if語句下面的代碼塊又縮進了一層。如果你break語句沒有縮進,和if平齊,那麼Python解析時會認為這句break是屬於for循環的,而不是if語句的代碼塊,那你這段代碼執行起來就會出錯。
  • break/continue跳出語句的用法筆記
    break不僅可以用在switch語句中,還可以用在死循環中跳出循環,當然continue也可以用在死循環中。下邊記錄了break/continue跳出語句在php中的一些用法,供大家參考。php中break跳出語句break關鍵字一般是用來跳出當前的循環(包括while、do...while、for、foreach循環)或跳出switch條件語句。當在使用循環語句時,如果不知道循環的次數,就知道當滿足或不滿足某條件是跳出循環,這時就可以使用break跳出語句。
  • 07.報數遊戲,趣說python循環裡的break和continue
    print(i)if i % 7 == 0 :break在python裡,我們使用 break 來提前結束整個循環。循環的範圍是[2,n),但如果我們在循環過程中找到一個數,可以整除n,那麼n就已經不是素數了,後面的循環就沒有必要繼續下去了。
  • JS(5)——循環語句、break、continue關鍵字、測試程序性能
    ,而do...while會先執行後判斷,do...while可以保證循環體至少執行一次,而while不能創建一個循環,往往需要三個步驟:創初始化一個變量在循環中設置一個條件表達式定義一個更新表達式,每次更新初始化變量for語句,也是一個循環語句,也稱為for循環在for循環中,為我們提供了專門的位置用來放三個表達式
  • 零基礎編程Python十一課break,continue、pass、else循環搭配用
    運行一下下面代碼, 觀察終端裡的效果。運行後,你會發現,本來for循環與while循環是可以從1列印到9的,結果由於break, 只能從1列印到5,這就是break的作用。在循環內使用,用來結束循環。注意好縮進哦。
  • [GO語言基礎] 六.循環控制語句、流程控制及編程練習(for、break、continue、goto)
    這篇文章將詳細講解循環控制語句和流程控制,包括for、break、continue、goto及相關編程練習。這系列文章入門部分將參考「尚矽谷」韓順平老師的視頻和書籍《GO高級編程》,詳見參考文獻,並結合作者多年的編程經驗進行學習和豐富,且看且珍惜吧!