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) 循環體如包括有一個以上的語句,則必須用{}括起來,組成復合語句