在本教程中,您將在示例的幫助下學(xué)習(xí)在C語言編程中創(chuàng)建while和do ... while循環(huán)。
在編程中,循環(huán)用于重復(fù)代碼塊,直到滿足指定條件為止。
C語言編程具有三種類型的循環(huán)。
while循環(huán)
do... while循環(huán)
在上一教程中,我們了解了for循環(huán)。在本教程中,我們將學(xué)習(xí)while和do..while循環(huán)。
while循環(huán)的語法為:
while (testExpression) { // 循環(huán)體中的語句 }
while循環(huán)計(jì)算在括號(hào)內(nèi)測(cè)試表達(dá)式(testExpression)。
如果測(cè)試表達(dá)式(testExpression)為true,則執(zhí)行while循環(huán)體內(nèi)的語句。然后,再次評(píng)估測(cè)試表達(dá)式(testExpression)。
該過程一直進(jìn)行到測(cè)試表達(dá)式(testExpression)被評(píng)估為false為止。
如果測(cè)試表達(dá)式為假(false),則循環(huán)終止(結(jié)束)。
要了解有關(guān)測(cè)試表達(dá)式的更多信息(當(dāng)測(cè)試表達(dá)式被評(píng)估為true和false時(shí)),請(qǐng)查看關(guān)系運(yùn)算符和邏輯運(yùn)算符。
//打印從1到5的數(shù)字 #include <stdio.h> int main() { int i = 1; while (i <= 5) { printf("%d\n", i); ++i; } return 0; }
輸出結(jié)果
1 2 3 4 5
在這里,我們已初始化i為1。
當(dāng)i為1時(shí),測(cè)試表達(dá)式 i <= 5 為true。因此,while執(zhí)行循環(huán)的主體。在屏幕上打印1,并將i其值增加到2。
現(xiàn)在i是2,測(cè)試表達(dá)式 i <= 5 再次為true。while循環(huán)主體將再次執(zhí)行。在屏幕上打印2,并將i其值增加到3。
該過程一直進(jìn)行到i為6時(shí),此時(shí)測(cè)試表達(dá)式 i <= 5 為false,循環(huán)終止。
do..while循環(huán)類似于while循環(huán),但有一個(gè)重要區(qū)別。do...while循環(huán)主體至少執(zhí)行一次。執(zhí)行一次后,才對(duì)測(cè)試表達(dá)式求值。
do...while循環(huán)的語法為:
do { //循環(huán)體內(nèi)的語句 } while (testExpression);
do ... while循環(huán)的主體執(zhí)行一次。只有這樣執(zhí)行一次后,才對(duì)測(cè)試表達(dá)式求值。
如果測(cè)試表達(dá)式(testExpression)為true,則再次執(zhí)行循環(huán)主體并評(píng)估測(cè)試表達(dá)式(testExpression)。
這個(gè)過程一直進(jìn)行到測(cè)試表達(dá)式變?yōu)閒alse。
如果測(cè)試表達(dá)式為false,則循環(huán)結(jié)束。
//程序添加數(shù)字,直到用戶輸入零 #include <stdio.h> int main() { double number, sum = 0; //循環(huán)的主體至少執(zhí)行一次 do { printf("輸入一個(gè)數(shù)字: "); scanf("%lf", &number); sum += number; } while(number != 0.0); printf("總和 = %.2lf",sum); return 0; }
輸出結(jié)果
輸入一個(gè)數(shù)字: 1.5 輸入一個(gè)數(shù)字: 2.4 輸入一個(gè)數(shù)字: -3.4 輸入一個(gè)數(shù)字: 4.2 輸入一個(gè)數(shù)字: 0 總和 = 4.70