在C語言中,共有三大常用的程序結構:
順序結構:代碼從前往后執行,沒有任何“拐彎抹角”;
選擇結構:也叫分支結構,重點要掌握 if else、switch 以及條件運算符;
循環結構:重復執行同一段代碼。
前面講解了順序結構和選擇結構,本節開始講解循環結構。所謂循環(Loop),就是重復地執行同一段代碼,例如要計算 1+2+3+……+99+100 的值,就要重復進行99次加法運算。
while循環
while循環的一般形式為:
while(表達式){
語句塊
}
其中表達式稱為循環條件,語句塊稱為循環體。
while語句的意思是:先計算表達式的值,當值為真(非0)時, 執行循環體語句;執行完循環體語句,再次計算表達式的值,如果為真,繼續執行循環體……這個過程會一直重復,直到表達式的值為假(0),就退出循環,執行后面的語句。其執行過程如下圖所示:
用while語句計算1加到100的值:
#include <stdio.h>int main(void){ int i=1, sum=0; while(i<=100){ sum+=i; i++; } printf("%d/n",sum); return 0;}
運行結果:
5050
代碼分析:
1) 程序運行到while語句時,因為 i=1,i<=100 的值為真,所以執行循環體;執行結束后 i 的值變為 2,sum 的值變為 1。
2) 接下來會繼續判斷 i<=100是否成立,因為此時 i=2,i<=100 成立,所以繼續執行循環體;執行結束后 i 的值變為 3,sum 的值變為3。
3) 重復執行步驟 2)。
4) 當循環進行到第100次,i 的值變為 101,sum 的值變為5050;因為此時 i<=100 不再成立,所以就退出循環,不再執行循環體,轉而執行while循環后面的代碼。
再看一個例子,統計從鍵盤輸入的一行字符的個數:
#include <stdio.h>int main(){ int n=0; printf("Input a string:"); while(getchar()!='/n') n++; printf("Number of characters: %d/n", n); return 0;}
運行結果:
Input a string:c.biancheng.net
Number of characters: 15
本例程序中的循環條件為getchar()!='/n',其意義是,只要從鍵盤輸入的字符不是回車就繼續循環。循環體n++;完成對輸入字符個數計數。
do-while循環
除了while循環,在C語言中還有一種 do-while 循環。
do-while循環的一般形式為:
do{
語句塊
}while(表達式);
do-while循環與while循環的不同在于:它會先執行循環體,然后再判斷表達式是否為真,如果為真則繼續循環;如果為假,則終止循環。因此,do-while 循環至少要執行一次循環體。其執行過程可用下圖表示:
用do-while計算1加到100的值:
#include <stdio.h>int main(){ int i=1, sum=0; do{ sum+=i; i++; }while(i<=100); printf("%d/n", sum); return 0;}
運行結果:
5050
注意while(i<=100);最后的分號;,這個必須要有。
while循環和do-while各有特點,大家可以適當選擇,實際編程中使用while循環較多。
以上就是對 C語言while 語句用法的詳細介紹,有需要的同學可以參考下。
新聞熱點
疑難解答
圖片精選