C語言 while語句的用法詳解
在C語言中,共有三大常用的程序結(jié)構(gòu):
順序結(jié)構(gòu):代碼從前往后執(zhí)行,沒有任何“拐彎抹角”;
選擇結(jié)構(gòu):也叫分支結(jié)構(gòu),重點要掌握 if else、switch 以及條件運算符;
循環(huán)結(jié)構(gòu):重復(fù)執(zhí)行同一段代碼。
前面講解了順序結(jié)構(gòu)和選擇結(jié)構(gòu),本節(jié)開始講解循環(huán)結(jié)構(gòu)。所謂循環(huán)(Loop),就是重復(fù)地執(zhí)行同一段代碼,例如要計算 1+2+3+……+99+100 的值,就要重復(fù)進(jìn)行99次加法運算。
while循環(huán)
while循環(huán)的一般形式為:
while(表達(dá)式){
語句塊
}
其中表達(dá)式稱為循環(huán)條件,語句塊稱為循環(huán)體。
while語句的意思是:先計算表達(dá)式的值,當(dāng)值為真(非0)時, 執(zhí)行循環(huán)體語句;執(zhí)行完循環(huán)體語句,再次計算表達(dá)式的值,如果為真,繼續(xù)執(zhí)行循環(huán)體……這個過程會一直重復(fù),直到表達(dá)式的值為假(0),就退出循環(huán),執(zhí)行后面的語句。其執(zhí)行過程如下圖所示:
用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; }
運行結(jié)果:
5050
代碼分析:
1) 程序運行到while語句時,因為 i=1,i<=100 的值為真,所以執(zhí)行循環(huán)體;執(zhí)行結(jié)束后 i 的值變?yōu)?2,sum 的值變?yōu)?1。
2) 接下來會繼續(xù)判斷 i<=100是否成立,因為此時 i=2,i<=100 成立,所以繼續(xù)執(zhí)行循環(huán)體;執(zhí)行結(jié)束后 i 的值變?yōu)?3,sum 的值變?yōu)?。
3) 重復(fù)執(zhí)行步驟 2)。
4) 當(dāng)循環(huán)進(jìn)行到第100次,i 的值變?yōu)?101,sum 的值變?yōu)?050;因為此時 i<=100 不再成立,所以就退出循環(huán),不再執(zhí)行循環(huán)體,轉(zhuǎn)而執(zhí)行while循環(huán)后面的代碼。
再看一個例子,統(tǒng)計從鍵盤輸入的一行字符的個數(shù):
#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; }
運行結(jié)果:
Input a string:c.biancheng.net
Number of characters: 15
本例程序中的循環(huán)條件為getchar()!='\n',其意義是,只要從鍵盤輸入的字符不是回車就繼續(xù)循環(huán)。循環(huán)體n++;完成對輸入字符個數(shù)計數(shù)。
do-while循環(huán)
除了while循環(huán),在C語言中還有一種 do-while 循環(huán)。
do-while循環(huán)的一般形式為:
do{
語句塊
}while(表達(dá)式);
do-while循環(huán)與while循環(huán)的不同在于:它會先執(zhí)行循環(huán)體,然后再判斷表達(dá)式是否為真,如果為真則繼續(xù)循環(huán);如果為假,則終止循環(huán)。因此,do-while 循環(huán)至少要執(zhí)行一次循環(huán)體。其執(zhí)行過程可用下圖表示:
用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; }
運行結(jié)果:
5050
注意while(i<=100);最后的分號;,這個必須要有。
while循環(huán)和do-while各有特點,大家可以適當(dāng)選擇,實際編程中使用while循環(huán)較多。
以上就是對 C語言while 語句用法的詳細(xì)介紹,有需要的同學(xué)可以參考下。
欄 目:C語言
下一篇:C語言數(shù)據(jù)類型轉(zhuǎn)換實例代碼
本文標(biāo)題:C語言 while語句的用法詳解
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/2143.html
您可能感興趣的文章
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用函數(shù)刪除字符
- 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)式函數(shù)庫
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言中對數(shù)函數(shù)的表達(dá)式 c語言中對數(shù)怎么表達(dá)
- 04-02c語言用函數(shù)寫分段 用c語言表示分段函數(shù)
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排序法函數(shù)
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段函數(shù)
- 04-02C語言中怎么打出三角函數(shù) c語言中怎么打出三角函數(shù)的值
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求階乘


閱讀排行
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對數(shù)函數(shù)的表達(dá)式 c語言中對
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
隨機(jī)閱讀
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-11ajax實現(xiàn)頁面的局部加載
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 04-02jquery與jsp,用jquery
- 01-10delphi制作wav文件的方法
- 01-10C#中split用法實例總結(jié)
- 08-05DEDE織夢data目錄下的sessions文件夾有什