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); |
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP