while語句如下:
站在用戶的角度思考問題,與客戶深入溝通,找到文縣網(wǎng)站設(shè)計與文縣網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設(shè)計、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名申請、網(wǎng)站空間、企業(yè)郵箱。業(yè)務(wù)覆蓋文縣地區(qū)。
while語句的一般形式為:??while(表達式)語句其中表達式是循環(huán)條件,語句為循環(huán)體。
while語句的語義是:計算表達式的值,當(dāng)值為真(非0)時,執(zhí)行循環(huán)體語句。其執(zhí)行過程可用下圖表示?!纠?-2】用while語句計算從1加到100的值。用傳統(tǒng)流程圖和N-S結(jié)構(gòu)流程圖表示算法,見圖:
#includestdio.h
intmain(void){
inti,sum=0;
i=1;
while(i=100){
sum=sum+i;
i++;
}
printf("%d\n",sum);
return0;
}
【例6-3】統(tǒng)計從鍵盤輸入一行字符的個數(shù)。
#includestdio.h
intmain(void){
intn=0;
printf("inputastring:\n");
while(getchar()!='\n')n++;
printf("%d",n);
return0;
}
本例程序中的循環(huán)條件為getchar()!='\n',其意義是,,只要從鍵盤輸入的字符不是回車就繼續(xù)循環(huán)。循環(huán)體n++完成對輸入字符個數(shù)計數(shù)。從而程序?qū)崿F(xiàn)了對輸入一行字符的字符個數(shù)計數(shù)。使用while語句應(yīng)注意以下兩點。1)while語句中的表達式一般是關(guān)系表達或邏輯表達式,只要表達式的值為真(非0)即可繼續(xù)循環(huán)。
#includestdio.h
intmain(void){
inta=0,n;
printf("\ninputn:");
scanf("%d",n);
while(n--)printf("%d",a++*2);
return0;
}
本例程序?qū)?zhí)行n次循環(huán),每執(zhí)行一次,n值減1。循環(huán)體輸出表達式a++*2的值。該表達式等效于(a*2;a++)。2)循環(huán)體如包括有一個以上的語句,則必須用{}括起來,組成復(fù)合語句。
while循環(huán)的一般形式為:
while(表達式){
語句塊
}
其中表達式稱為循環(huán)條件,語句塊稱為循環(huán)體。
while語句的意思是:先計算表達式的值,當(dāng)值為真(非0)時,執(zhí)行循環(huán)體語句;執(zhí)行完循環(huán)體語句,再次計算表達式的值,如果為真,繼續(xù)執(zhí)行循環(huán)體??這個過程會一直重復(fù),直到表達式的值為假(0),就退出循環(huán),執(zhí)行后面的語句。其執(zhí)行過程如下圖所示:
用while語句計算1加到100的值:
?
12345678910
#includestdio.hintmain(void){??inti=1,sum=0;??while(i=100){????sum+=i;????i++;??}??printf("%d\n",sum);??return0;}
運行結(jié)果:
5050
代碼分析:
1)程序運行到while語句時,因為i=1,i=100的值為真,所以執(zhí)行循環(huán)體;執(zhí)行結(jié)束后i的值變?yōu)?,sum的值變?yōu)?。
2)接下來會繼續(xù)判斷i=100是否成立,因為此時i=2,i=100成立,所以繼續(xù)執(zhí)行循環(huán)體;執(zhí)行結(jié)束后i的值變?yōu)?,sum的值變?yōu)?。
3)重復(fù)執(zhí)行步驟2)。
4)當(dāng)循環(huán)進行到第100次,i的值變?yōu)?01,sum的值變?yōu)?050;因為此時i=100不再成立,所以就退出循環(huán),不再執(zhí)行循環(huán)體,轉(zhuǎn)而執(zhí)行while循環(huán)后面的代碼。
再看一個例子,統(tǒng)計從鍵盤輸入的一行字符的個數(shù):
?
12345678
#includestdio.hintmain(){??intn=0;??printf("Inputastring:");??while(getchar()!='\n')n++;??printf("Numberofcharacters:%d\n",n);??return0;}
運行結(jié)果:
Inputastring:c.biancheng.net
Numberofcharacters: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(表達式);
do-while循環(huán)與while循環(huán)的不同在于:它會先執(zhí)行循環(huán)體,然后再判斷表達式是否為真,如果為真則繼續(xù)循環(huán);如果為假,則終止循環(huán)。因此,do-while循環(huán)至少要執(zhí)行一次循環(huán)體。其執(zhí)行過程可用下圖表示:
用do-while計算1加到100的值:
?
12345678910
#includestdio.hintmain(){??inti=1,sum=0;??do{????sum+=i;????i++;??}while(i=100);??printf("%d\n",sum);??return0;}
運行結(jié)果:
5050
C語言中while的用法解析如下:
一、1表示true,在bool類型取值false和true,0為false,非0為true(例如-1和2都是true)。程序中,這里1就表示永真,直到循環(huán)體內(nèi)遇到break。
二、while用法演示解析:
1、含義:While 循環(huán)會在指定條件為真時循環(huán)執(zhí)行代碼塊。
2、語法如下:(如果忘記增加條件中所用變量的值,該循環(huán)永遠(yuǎn)不會結(jié)束。該可能導(dǎo)致程序崩潰。)
3、實例:
例中的循環(huán)將繼續(xù)運行,只要變量 i 小于 5:
4、執(zhí)行結(jié)果如下:
擴展資料:
比較 for 和 while循環(huán):
for循環(huán)控制變量的初始化和修改都放在語句頭部分,書寫形式較簡潔,且適用于循環(huán)次數(shù)已知的情況。在循環(huán)語句中定義一個局部變量,循環(huán)結(jié)束后,局部變量就被釋放了。
而while循環(huán)控制變量的初始化一般放在while語句之前,循環(huán)控制變量的修改一般放在循環(huán)體中,形式上不如for語句簡潔,但它比較適用于循環(huán)次數(shù)不易預(yù)知的情況(用某一條件控制循環(huán))。
兩種形式各有優(yōu)點,但它們是等價的,可以相互轉(zhuǎn)換。
參考資料:百度百科--bool類型
參考資料:百度百科--while
c語言while循環(huán)用法:
一般形式如下:
while(表達式)
{循環(huán)體內(nèi)語句}
循環(huán)體外語句
其中執(zhí)行過程如下:
(1)計算while后面括號里表達式的值,若其結(jié)果非0,則轉(zhuǎn)入(2),否則轉(zhuǎn)(3)。
(2)執(zhí)行循環(huán)體,轉(zhuǎn)(1)。
(3)退出循環(huán),執(zhí)行循環(huán)體下面的語句。
由于是先執(zhí)行判斷后執(zhí)行循環(huán)體,所以循環(huán)體可能一次都不執(zhí)行。
循環(huán)體可以為空語句“;”。
使用:
如果循環(huán)次數(shù)在執(zhí)行循環(huán)體之前就已確定,一般用for語句。如果循環(huán)次數(shù)是由循環(huán)體的執(zhí)行情況確定的,一般用while語句或者do- while語句。
當(dāng)循環(huán)體至少執(zhí)行一次時,用do-while語句,反之,如果循環(huán)體可能一次也不執(zhí)行,則選用while語句。C++/C循環(huán)語句中,for語句使用頻率最高,while語句其次,do語句很少用。
三種循環(huán)語句for、while、do-while可以互相嵌套自由組合。但要注意的是,各循環(huán)必須完整,相互之間絕不允許交叉。