C語言是結構化程序設計語言,而循環結構是結構化程序設計的基本結構之一。實際上,在許多現實問題中循環結構都必不可少。比如求數列之和(或數列之積)、大批量地輸入輸出(或特殊處理)等。其特點是:在給定條件成立時,反複執行某程序段,直到條件不成立為止。給定的條件稱為循環條件,反複執行的程序段稱為循環體。C語言提供了多種循環語句,可以組成各種不同形式的循環結構。
while語句由四個部分組成:循環變量初始化,循環條件,循環體,改變循環變量的值。
while語句的語義是:計算循環條件表達式的值,當值為真(非0)時,執行循環體語句。
while循環結構while語句的一般形式為:
while(表達式)語句;
例如,下麵的代碼就是一個while循環。
sum=0;
i=1;/*循環變量初始化*/
while(i
100為止。如果沒有循環體中的“i=i+1”,則i的值始終不改變,循環就永遠不會停止。
do-while語句的一般形式為:
do
循環體
while(條件表達式);
當程序執行流程到達do後,立即執行循環體語句,然後再對條件表達式進行判斷。若條件表達式的值為真(非0),則重複循環,否則退出。
該循環結構使循環體至少執行一次。
[例62]要從鍵盤輸入中得到一個範圍為1~10的數,下麵是利用do-while寫出的完整的程序。
voidmain()
{
intnum;
do
{
printf("Enteranumberbetween1and10:\n");
scanf("%d",&num);
if(num10)
printf("Thisnumberisnotbetween1and10.\n");
}while(num10);
printf("Youentereda%d",num);
}
運行結果為:
Enteranumberbetween1and10:
12
Thisnumberisnotbetween1and10.
Enteranumberbetween1and10:
6
Youentereda6
該程序讀入一個1~10之間的數,滿足條件後就越過循環,輸出讀入的數值。
do-while循環結構do-while循環至少執行一次,因為直到程序到達循環體的尾部遇到while時,才知道循環條件是什麼。如果循環條件仍然成立,程序再回轉到do-while循環的頂部,繼續循環。