C語言while語句的用法
while語句的一般形式為:while(運算式)語句
其中運算式是迴圈條件,語句為迴圈體。
while語句的語義是:計算運算式的值,當值為真(非0)時, 執行迴圈體語句。其執行過程可用下圖表示。
【例6.2】用while語句計算從1加到100的值。用傳統流程圖和N-S結構流程圖表示演算法
| 代碼如下 |
複製代碼 |
main() { int i,sum=0; i=1; while(i<=100) { sum=sum+i; i++; } printf("%dn",sum); } |
【例6.3】統計從鍵盤輸入一行字元的個數。
| 代碼如下 |
複製代碼 |
#include <stdio.h> main(){ int n=0; printf("input a string:n"); while(getchar()!='n') n++; printf("%d",n); } |
本常式序中的迴圈條件為getchar()!='n',其意義是, 只要從鍵盤輸入的字元不是斷行符號就繼續迴圈。迴圈體n++完成對輸入字元個數計數。從而程式實現了對輸入一行字元的字元個數計數。
使用while語句應注意以下幾點:
while語句中的運算式一般是關係表達或邏輯運算式,只要運算式的值為真(非0)即可繼續迴圈。
【例6.4】
| 代碼如下 |
複製代碼 |
main(){ int a=0,n; printf("n input n: "); scanf("%d",&n); while (n--) printf("%d ",a++*2); } |
本常式序將執行n次迴圈,每執行一次,n值減1。迴圈體輸出運算式a++*2的值。該運算式等效於(a*2;a++)。
迴圈體如包括有一個以上的語句,則必須用{}括起來,組成複合陳述式。
C語言do-while語句
do-while語句的一般形式為:
do
語句
while(運算式);
這個迴圈與while迴圈的不同在於:它先執行迴圈中的語句,然後再判斷運算式是否為真, 如果為真則繼續迴圈;如果為假, 則終止迴圈。因此, do-while迴圈至少要執行一次迴圈語句。其執行過程可用下圖表示。
【例6.5】用do-while語句計算從1加到100的值
| 代碼如下 |
複製代碼 |
main() { int i,sum=0; i=1; do { sum=sum+i; i++; } while(i<=100) printf("%dn",sum); } |
同樣當有許多語句參加迴圈時, 要用"{"和"}"把它們括起來。
【例6.6】while和do-while迴圈比較。
(1)main()
| 代碼如下 |
複製代碼 |
{int sum=0,i; scanf("%d",&i); while(i<=10) {sum=sum+i; i++; } printf("sum=%d",sum); } |
(2)main()
| 代碼如下 |
複製代碼 |
{int sum=0,i; scanf("%d",&i); do {sum=sum+i; i++; } while(i<=10); printf("sum=%d",sum); } |