循環裏continue,break,return的做用,你知道嗎?

Python實戰社羣php

Java實戰社羣程序員

長按識別下方二維碼,按需求添加web

掃碼關注添加客服編程

進Python社羣▲微信

掃碼關注添加客服函數

進Java社羣編碼

做者丨李肖遙
spa

來源丨技術讓夢想更偉大(ID:TechDreamer)
code

前言

循環裏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,做用是跳出循環,通常有如下兩種用法:

  1. 當 break 語句出如今一個循環內時,循環會當即終止,且程序流將繼續執行緊接着循環的下一條語句。

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

若是使用的是嵌套循環,break 語句會中止執行最內層的循環,而後開始執行該塊以後的下一行代碼。

注意:

  1. break語句對if-else的條件語句不起做用。

  2. 在多層循環中,一個break語句只向外跳一層。

  3. 因爲它是用來退出循環或者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個問題,若是一看即知道答案,那麼確定沒有問題了。

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

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

  3. 在什麼應用場景下咱們會用到break或continue?

程序員專欄 掃碼關注填加客服 長按識別下方二維碼進羣
近期精彩內容推薦:   程序員買房先後對比,看完後已哭瞎... 內部泄露版!互聯網大廠的薪資和職級一覽 Google 出品的 Java 編碼規範 Python編程 高階函數使用技巧


在看點這裏好文分享給更多人↓↓
相關文章
相關標籤/搜索