while語句的一般形式為:
while(表達式) 語句
其中表達式是循環條件,語句為循環體。
while語句的語義是:計算表達式的值,當值為真(非0)時, 執行循環體語句。其執行過程可用下圖表示。

【例6-2】用while語句計算從1加到100的值。用傳統流程圖和N-S結構流程圖表示算法,見圖:

復制純文本新窗口
- #include <stdio.h>
- int main(void){
- int i,sum=0;
- i=1;
- while(i<=100){
- sum=sum+i;
- i++;
- }
- printf("%d\n",sum);
- return 0;
- }
#include <stdio.h>
int main(void){
int i,sum=0;
i=1;
while(i<=100){
sum=sum+i;
i++;
}
printf("%d\n",sum);
return 0;
}
【例6-3】統計從鍵盤輸入一行字符的個數。
復制純文本新窗口
- #include <stdio.h>
- int main(void){
- int n=0;
- printf("input a string:\n");
- while(getchar()!='\n') n++;
- printf("%d",n);
- return 0;
- }
#include <stdio.h>
int main(void){
int n=0;
printf("input a string:\n");
while(getchar()!='\n') n++;
printf("%d",n);
return 0;
}
本例程序中的循環條件為getchar()!='\n',其意義是,,只要從鍵盤輸入的字符不是回車就繼續循環。循環體n++完成對輸入字符個數計數。從而程序實現了對輸入一行字符的字符個數計數。
使用while語句應注意以下兩點。
1) while語句中的表達式一般是關系表達或邏輯表達式,只要表達式的值為真(非0)即可繼續循環。
復制純文本新窗口
- #include <stdio.h>
- int main(void){
- int a=0,n;
- printf("\n input n: ");
- scanf("%d",&n);
- while (n--) printf("%d ",a++*2);
- return 0;
- }
#include <stdio.h>
int main(void){
int a=0,n;
printf("\n input n: ");
scanf("%d",&n);
while (n--) printf("%d ",a++*2);
return 0;
}
本例程序將執行n次循環,每執行一次,n值減1。循環體輸出表達式a++*2的值。該表達式等效於(a*2; a++)。
2) 循環體如包括有一個以上的語句,則必須用{}括起來,組成復合語句