C - 迴圈



迴圈是一種程式設計結構,它表示一個或多個語句塊,這些語句塊被重複執行指定的次數,或者直到達到某個條件。

重複性任務在程式設計中很常見,迴圈對於節省時間和最大程度地減少錯誤至關重要。在C 程式設計中,提供了whiledo–whilefor關鍵字來實現迴圈。

迴圈結構是任何處理邏輯的重要組成部分,因為它們有助於反覆執行相同的過程。C 程式設計師應該熟悉迴圈結構的實現和控制。

程式語言提供各種控制結構,允許更復雜的執行路徑。迴圈語句允許我們多次執行一個語句或一組語句。

C 迴圈語句的流程圖

下面是迴圈語句的一般流程圖,適用於任何程式語言:

Loop Architecture

C 程式中的語句總是自上而下執行。如果我們要求編譯器返回到任何先前的步驟,則構成一個迴圈。

示例:C 語言中的迴圈

要了解程式中迴圈的必要性,請考慮以下程式碼片段:

#include <stdio.h>
int main (){

   // local variable definition
   int a = 1;
   
   printf("a: %d\n", a);
   a++;
   
   printf("a: %d\n", a);
   a++;
   
   printf("a: %d\n", a);
   a++;
   
   printf("a: %d\n", a);
   a++;
   
   printf("a: %d\n", a);
 
   return 0;
}

輸出

執行此程式碼後,您將獲得以下輸出:

a: 1
a: 2
a: 3
a: 4
a: 5

程式列印“a”的值,並遞增其值。這兩個步驟重複多次。如果您需要列印“a”從 1 到 100 的值,則不希望在程式碼中手動重複這些步驟。相反,我們可以要求編譯器重複執行列印和遞增這兩個步驟,直到它達到 100。

示例:在 C 語言中使用 While 迴圈

您可以使用forwhiledo-while結構來重複迴圈。以下程式顯示瞭如何使用 C 語言中的“while”迴圈列印 100 個“a”的值:

#include <stdio.h>

int main () {

   // local variable definition
   int a = 1;

   while (a <= 100){
      printf("a: %d\n", a);
      a++;
   }

   return 0;
}

輸出

執行此程式碼並檢查輸出:

a: 1
a: 2
a: 3
a: 4
.....
.....
a: 98
a: 99
a: 100

如果一個步驟根據任何條件將程式流重定向到任何先前的步驟,則該迴圈是條件迴圈。一旦控制條件變為假,重複將停止。如果在沒有任何條件的情況下進行重定向,則它是一個無限迴圈,因為程式碼塊會永遠重複。

C 迴圈的組成部分

要構成一個迴圈,需要以下元素:

  • 迴圈語句(whiledo–whilefor
  • 迴圈塊
  • 迴圈條件

迴圈通常有兩種型別:

C 語言中的計數迴圈

如果迴圈被設計為重複一定次數,則它是一個計數迴圈。在 C 語言中,for迴圈是計數迴圈的一個示例。

C 語言中的條件迴圈

如果迴圈被設計為重複直到某個條件為真,則它是一個條件迴圈。whiledo–while結構幫助您形成條件迴圈。

C 語言中的迴圈語句

C 程式設計提供了以下型別的迴圈來處理迴圈需求:

序號 迴圈型別和描述
1

while 迴圈

在給定條件為真的情況下重複一個語句或一組語句。它在執行迴圈體之前測試條件。

2

for 迴圈

多次執行一系列語句,並縮寫管理迴圈變數的程式碼。

3

do-while 迴圈

它更像一個 while 語句,除了它在迴圈體結束時測試條件。

4

巢狀迴圈

您可以在任何其他whilefordo-while迴圈內使用一個或多個迴圈。

根據給定情況,必須使用上述每種迴圈型別。我們將在後續章節中詳細瞭解這些迴圈型別。

C 語言中的迴圈控制語句

迴圈控制語句改變執行的正常順序。當執行離開作用域時,在該作用域中建立的所有自動物件都會被銷燬。

C 支援以下控制語句:

序號 控制語句和描述
1

break 語句

終止迴圈switch語句,並將執行轉移到迴圈或 switch 後面的語句。

2

continue 語句

導致迴圈跳過其主體剩餘部分,並在重新迭代之前立即重新測試其條件。

3

goto 語句

將控制轉移到帶標籤的語句。

breakcontinue語句具有相反的目的。goto語句充當跳轉語句,如果它導致程式跳轉到後面的語句。如果goto語句將程式重定向到前面的語句,則它構成一個迴圈。

C 語言中的無限迴圈

如果條件永遠不會變為假,則迴圈將變為無限迴圈。無限迴圈是一個無限重複的迴圈,因為它沒有終止條件,或者永遠不會滿足終止條件,或者迴圈被指示從開頭重新開始。

儘管程式設計師可以有意使用無限迴圈,但它們通常是新程式設計師犯的錯誤。

示例:C 語言中的無限迴圈

for迴圈傳統上用於建立無限迴圈。由於構成“for”迴圈的三個表示式都不需要,因此您可以透過將條件表示式留空來建立一個無限迴圈。

#include <stdio.h>
 
int main (){

   for( ; ; ){
      printf("This loop will run forever. \n");
   }

   return 0;
}

輸出

透過執行此程式碼,您將獲得一個無限迴圈,它將永遠重複列印同一行。

This loop will run forever.
This loop will run forever.
........
........
This loop will run forever.

當條件表示式不存在時,它被假定為真。您可能有一個初始化和增量表達式,但 C 程式設計師更常使用for(;;)結構來表示無限迴圈。

注意 - 您可以透過按下“Ctrl + C”鍵來終止無限迴圈。

廣告