位置:首頁 > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

C語言 do-while語句

提問人:劉團圓發(fā)布時間:2020-11-30

1.do-while循環(huán)的一般形式

do-while循環(huán)同while循環(huán)一樣,也適合于循環(huán)次數(shù)不確定的情況,do-while循環(huán)的特點是先執(zhí)行循環(huán)體,再測試條件是否成立。 do-while循環(huán)的一般形式為:

do

{

    循環(huán)語句

}while(表達式);

又分為以下幾種情況:

①表達式為循環(huán)控制條件,通常是關系表達式或邏輯表達式的形式,也可以是任意合法的C語言表達式。

②雖然在do-while循環(huán)中,當循環(huán)語句是一條簡單語句,可以不加大括號,但還是建議不論是單條語句還是多條語句,盡量都以復合語句的形式出現(xiàn),以保證程序的結構清晰。 

③循環(huán)語句也可以是空語句,例如:

do

{

    ;

}while(i<10);

④do-while循環(huán)中while后面的“;”不可以省略。


2.do-while循環(huán)的執(zhí)行過程

do-While循環(huán)的執(zhí)行過程為:先執(zhí)行一次循環(huán)體,遇到循環(huán)條件,計算并判斷循環(huán)表達式是否為非0,如果為非0,繼續(xù)執(zhí)行循環(huán)體,否則結束循環(huán)。do-while循環(huán)的執(zhí)行流程圖如圖所示。

image.png

do-while循環(huán)有三個方面需要注意:

①從流程圖中可以看出,do-while循環(huán)中,哪怕從最開始時循環(huán)表達式就不成立,循環(huán)語句也至少被執(zhí)行一次,例如:

int i=21; 

do 

{

    printf ("%d\n",i);

    i++;

}while(i<20);

    程序中,變量i的初值為21,遇到do-while循環(huán),先執(zhí)行循環(huán)體,輸出i,并使i增1。之后判斷循環(huán)條件i<20是否成立,i的值此時已是22,循環(huán)條件不成立,退出循環(huán)。雖然i的值最開始就不小于20,但也執(zhí)行了一次循環(huán)體。

②和while循環(huán)一樣,do-while循環(huán)也在出現(xiàn)下列情況時退出循環(huán):

?條件表達式不成立(為0)時。

?在循環(huán)體中遇到break語句、return語句時。

③避免程序中出現(xiàn)死循環(huán),循環(huán)體中應該有使循環(huán)趨近于結束的語句,或者設置能夠結束循環(huán)的循環(huán)條件。例如:

int x=0;

do

{

    if (x%2==0)

        printf ("%d is even number\n",x);

    else

        printf ("%d is not even number\n",x); 

    scanf ("%d",&x);

}while(x>0 && x<=100);

    程序需要判斷輸入的0?100之間的一組整數(shù),哪個是偶數(shù),哪個奇數(shù)。因循環(huán)體實現(xiàn)的功能是輸入數(shù)據(jù)并判斷奇偶數(shù),要想結束循環(huán),只要輸入一個0?100之外的數(shù)字即可。所以本程序的循環(huán)結束是由用戶自己控制的,輸入一個不符合條件的值即可結束循環(huán)。 


繼續(xù)查找其他問題的答案?

相關視頻回答
回復(0)
返回頂部