上面我們講了if的用法和表達式,今天我們來(lái)講第二種語(yǔ)句——while和do-while語(yǔ)句。
while 循環(huán)的執行順序非常簡(jiǎn)單,它的格式是:
while(表達式)
{
循環(huán)體;
}
當表達式結果為真,則執行下面的語(yǔ)句;語(yǔ)句執行完之后再判斷表達式是否為真,如果為真,再次執行下面的語(yǔ)句;然后再判斷表達式是否為真……就這樣一直循環(huán)下去,直到表達式為假,跳出循環(huán)。
下面用一個(gè)例子來(lái)詳解:
int a = 1;while (a <= 10){printf("%dn", a);a++;}這個(gè)例子中:第一步:a=1,第二步:判斷a是否小于等于10;第三步:因為a小于等于10,所以輸出a的數值1,回車(chē)換行;然后a自加1,這個(gè)時(shí)候a=2;第四步:判斷a是否小于等于10,因為a=2,小于等于10;第五步:因為a小于等于10,所以輸出a的數值2,回車(chē)換行;然后a自加1,這個(gè)時(shí)候a=3;這樣一直重復到a=11時(shí),因為a大于10;所以while里面的條件不成立,循環(huán)結束,跳出循環(huán)。所以最后輸出的數字為1--10.
while還有一種比較特殊的形式,就是while(1);這個(gè)表示表達式永遠成立,如果循環(huán)內沒(méi)有break 這個(gè)語(yǔ)句的話(huà),那么這個(gè)就是一個(gè)死循環(huán),以前好多電腦惡搞軟件都是利用這個(gè)語(yǔ)句來(lái)使別人的電腦癱瘓無(wú)法工作。
do-while和while唯一的不同在于while是判斷以后再執行,而do-while 是先執行一次以后再判斷
它的結構語(yǔ)句如下:
do
{
//循環(huán)體
}
while (條件表達式);
我們還用上面那個(gè)例子來(lái)說(shuō)明,這樣比較直觀(guān)可以看出區別
int a = 1;do{printf("%dn", a);a++;}while (a <= 10);這個(gè)程序輸出的結果為1--11這11個(gè)數,原因在于當a=11時(shí),程序按照執行順序會(huì )先輸出a的數值,然后再判斷a是否小于等于10;當判斷a大于10以后;程序終止。