C/C++中do…while迴圈與while迴圈的比較


我們將瞭解C或C++中do-while迴圈和while迴圈的基本區別。

C語言程式設計中的while迴圈會重複執行目標語句,直到給定條件為真為止。語法如下所示。

while(condition) {
   statement(s);
}

這裡,statement(s)可以是單個語句或語句塊。條件可以是任何表示式,任何非零值都表示真。迴圈在條件為真的情況下迭代。

當條件變為假時,程式控制將傳遞到迴圈後緊跟的語句。

示例

#include <stdio.h>
int main () {
   int a = 10; // Local variable declaration:
   do { // do loop execution
      printf("value of a: %d\n", a);
      a = a + 1;
   } while( a < 20 );
   return 0;
}

輸出

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19

現在讓我們看看do-while迴圈。

與for迴圈和while迴圈不同,for迴圈和while迴圈在迴圈頂部測試迴圈條件,而do...while迴圈在迴圈底部檢查其條件。

do...while迴圈類似於while迴圈,不同之處在於do...while迴圈保證至少執行一次。

do {
   statement(s);
}
while( condition );

請注意,條件表示式出現在迴圈的末尾,因此迴圈中的語句(s)會在測試條件之前執行一次。

如果條件為真,則控制流跳轉回do,並且迴圈中的語句(s)再次執行。此過程重複,直到給定條件變為假。

示例

#include <stdio.h>
int main () {
   /* local variable definition */
   int a = 10;
   /* while loop execution */
   while( a < 20 ) {
      printf("value of a: %d\n", a);
      a++;
   }
   return 0;
}

輸出

value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19

因此,差異總結在下表中:

while迴圈do-while迴圈
這是入口控制迴圈。它在進入迴圈之前檢查條件這是出口控制迴圈。在退出迴圈時檢查條件
while迴圈可能執行零次或多次do-while迴圈可能執行一次以上,但至少執行一次。
測試條件的變數必須在進入迴圈之前初始化迴圈條件的變數也可以在迴圈中初始化。
while(condition){
   //statement
}
do{
   //statement
}while(condition);

更新於:2019年7月30日

7K+ 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.