C語言 - while迴圈



在C語言中,while 是一個用於構成迴圈的關鍵字。while 迴圈是C語言中最常用的迴圈型別之一。C語言中的迴圈。C語言中的其他迴圈關鍵字是 fordo-while

while 迴圈通常被稱為入口驗證迴圈,而do-while 迴圈出口驗證迴圈for 迴圈則是一個自動迴圈

C語言while迴圈的語法

構建while 迴圈的語法如下:

while(expression){
   statement(s);
}

while 關鍵字後面跟著一個括號,其中應該包含一個布林表示式。括號後面是用花括號括起來的一段語句塊。

C語言while迴圈的流程圖

下面的流程圖表示while 迴圈的工作方式:

while loop in C

while迴圈在C語言中如何工作?

C編譯器 會評估表示式。如果表示式為真,則會執行其後的程式碼塊。如果表示式為假,編譯器會忽略while 關鍵字後面的程式碼塊,並繼續執行程式碼塊後面的下一條語句。

由於控制迴圈的表示式是在程式進入迴圈之前進行測試的,因此while 迴圈被稱為入口驗證迴圈。這裡需要注意的關鍵點是,如果條件在第一次就發現為假,則while 迴圈可能根本不會執行。

while 關鍵字意味著編譯器會持續執行後續程式碼塊,直到表示式為假。條件位於迴圈結構的頂部。每次迭代後,都會測試條件。如果發現為真,編譯器會執行下一次迭代。一旦表示式被發現為假,迴圈體將被跳過,並且將執行while迴圈後的第一條語句。

C語言while迴圈的示例

下面的程式列印“Hello World”訊息五次。

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

   // local variable definition
   int a = 1;

   // while loop execution
   while(a <= 5){
      printf("Hello World \n");
      a++;
   }
   printf("End of loop"); 
   return 0;
}

輸出

在這裡,while 迴圈充當計數迴圈。執行程式碼並檢查其輸出:

Hello World
Hello World
Hello World
Hello World
Hello World
End of loop

示例解釋

while 語句之前,控制重複次數的變數“a”被初始化為1。由於條件“a <= 5”為真,程式進入迴圈,列印訊息,將“a”加1,然後返回到迴圈頂部。

在下一次迭代中,“a”為2,因此條件仍然為真,因此迴圈再次重複,並持續到條件變為假。迴圈停止重複,程式控制轉到程式碼塊之後的步驟。

現在,將“a”的初始值更改為10,然後再次執行程式碼。現在輸出將顯示以下內容:

End of loop

這是因為while 關鍵字之前的條件在第一次迭代中就為假,因此程式碼塊沒有重複執行。

“char”變量表示與其ASCII值對應的字元。因此,它可以遞增。因此,我們將變數的值從“a”遞增到“z”。

將while用作條件迴圈

您可以將while迴圈用作條件迴圈,其中迴圈將一直執行到滿足給定條件為止。

示例

在這個例子中,while 迴圈用作條件迴圈。迴圈會一直重複,直到接收到的輸入是非負數。

#include <stdio.h>

int main(){

   // local variable definition 
   char choice = 'a';

   int x = 0;

   // while loop execution
   while(x >= 0){
      (x % 2 == 0) ? printf("%d is Even \n", x) : printf("%d is Odd \n", x);

      printf("\n Enter a positive number: ");
      scanf("%d", &x);
   }
   printf("\n End of loop");
   return 0;
}

輸出

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

0 is Even

Enter a positive number: 12
12 is Even

Enter a positive number: 25
25 is Odd

Enter a positive number: -1

End of loop

帶有break和continue的while迴圈

在以上所有示例中,while 迴圈的設計目的是重複多次,或者直到找到某個特定條件。C語言有breakcontinue 語句來控制迴圈。這些關鍵字可以在while 迴圈內使用。

示例

break 語句導致迴圈終止:

while (expr){
   . . .
   . . .
   if (condition)
      break;
   . . .
}

示例

continue 語句使迴圈從開頭重複:

while (expr){
   . . .
   . . .
   if (condition)
      continue;
   . . .
}

更多C語言while迴圈示例

示例:列印小寫字母

下面的程式使用while 迴圈列印所有小寫字母。

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

   // local variable definition
   char a = 'a';

   // while loop execution
   while(a <= 'z') {
      printf("%c", a);
      a++;
   }
   printf("\n End of loop"); 
   return 0;
}

輸出

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

abcdefghijklmnopqrstuvwxyz
End of loop

示例:使兩個變數相等

在下面給出的程式碼中,我們有兩個變數“a”和“b”,分別初始化為10和0。在迴圈中,“b”遞減,“a”在每次迭代中遞增。迴圈設計為重複執行,直到“a”和“b”不相等。當兩者都達到5時,迴圈結束。

#include <stdio.h>

int main(){

   // local variable definition
   int a = 10, b = 0;

   // while loop execution
   while(a != b){
      a--;
      b++;
      printf("a: %d b: %d\n", a,b);
   }
   printf("\n End of loop");
   return 0;
}

輸出

執行此程式碼時,將產生以下輸出:

a: 9 b: 1
a: 8 b: 2
a: 7 b: 3
a: 6 b: 4
a: 5 b: 5

End of loop

while迴圈與do while迴圈

do-while 迴圈在大多數情況下與while 迴圈類似,儘管它們的語法有所不同。do-while 迴圈被稱為出口驗證迴圈。在某些情況下,它們的行為是不同的。whiledo-while 迴圈之間的區別在本教程的do-while 章節中進行了解釋。

c_loops.htm
廣告