1.3.2.2 while循環(huán)
while循環(huán)的一般形式為:
while(條件)
語(yǔ)句;
while循環(huán)表示當(dāng)條件為真時(shí), 便執(zhí)行語(yǔ)句。直到條件為假才結(jié)束循環(huán)。并繼續(xù)執(zhí)行循環(huán)程序外的后續(xù)語(yǔ)句。
例17:
#include
main()
{
char c;
c=’\0’; /*初始化c*/
while(c!=’\X0D’) /*回車(chē)結(jié)束循環(huán)*/
c=getche(); /*帶回顯的從鍵盤(pán)接收字符*/
}
上例中, while循環(huán)是以檢查c是否為回車(chē)符開(kāi)始, 因其事先被初始化為空, 所以條件為真, 進(jìn)入循環(huán)等待鍵盤(pán)輸入字符; 一旦輸入回車(chē), 則c=’\X0D’, 條件為假, 循環(huán)便告結(jié)束。
與for循環(huán)一樣, while循環(huán)總是在循環(huán)的頭部檢驗(yàn)條件, 這就意味著循環(huán)可能什么也不執(zhí)行就退出。
注意:
1. 在while循環(huán)體內(nèi)也允許空語(yǔ)句。
例如:
while((c=getche())!=’\X0D’);
這個(gè)循環(huán)直到鍵入回車(chē)為止。
2. 可以有多層循環(huán)嵌套。
3. 語(yǔ)句可以是語(yǔ)句體, 此時(shí)必須用"{"和"}"括起來(lái)。
例18:
#include
main()
{
char c, fname[13];
FILE *fp; /*定義文件指針*/
printf("File name:"); /*提示輸入文件名*/
scanf("%s", fname); /*等待輸入文件名*/
fp=fopen(fname, "r"); /*打開(kāi)文件只讀*/
while((c=fgetc(fp)!=EOF) /*讀取一個(gè)字符并判斷是否到文件結(jié)束*/
putchar(c); /*文件未結(jié)束時(shí)顯示該字符*/
}
1.3.2.3 do-while 循環(huán)
do-while 循環(huán)的一般格式為:
do
語(yǔ)句;
while(條件);
這個(gè)循環(huán)與while循環(huán)的不同在于: 它先執(zhí)行循環(huán)中的語(yǔ)句, 然后再判斷條件是否為真, 如果為真則繼續(xù)循環(huán); 如果為假, 則終止循環(huán)。因此, do-while循環(huán)至少要執(zhí)行一次循環(huán)語(yǔ)句。
同樣當(dāng)有許多語(yǔ)句參加循環(huán)時(shí), 要用"{"和"}"把它們括起來(lái)。
1.3.3 開(kāi)關(guān)語(yǔ)句
在編寫(xiě)程序時(shí), 經(jīng)常會(huì)碰到按不同情況分轉(zhuǎn)的多路問(wèn)題, 這時(shí)可用嵌套if-else-fi語(yǔ)句來(lái)實(shí)現(xiàn), 但if-else-if語(yǔ)句使用不方便, 并且容易出錯(cuò)。對(duì)這種情況, Turbo C2.0提供了一個(gè)開(kāi)關(guān)語(yǔ)句。開(kāi)關(guān)語(yǔ)句格式為:
switch(變量)
{
case 常量1:
語(yǔ)句1或空;
case 常量2:
語(yǔ)句2或空;
.
.
.
case 常量n;
語(yǔ)句n或空;
default:
語(yǔ)句n+1或空;
}
執(zhí)行switch開(kāi)關(guān)語(yǔ)句時(shí), 將變量逐個(gè)與case后的常量進(jìn)行比較, 若與其中一個(gè)相等, 則執(zhí)行該常量下的語(yǔ)句, 若不與任何一個(gè)常量相等, 則執(zhí)行default 后面的語(yǔ)句。
注意:
1. switch中變量可以是數(shù)值, 也可以是字符。
2. 可以省略一些case和default。
3. 每個(gè)case或default后的語(yǔ)句可以是語(yǔ)句體, 但不需要使用"{"和"}"括起來(lái)。
下例的switch中變量為整數(shù)型。
例19:
main()
{
int test;
for(test=0; test<=10; test++)
{
switch(test) /*變量為整型數(shù)的開(kāi)關(guān)語(yǔ)句*/
{
case 1:
printf("%d\n", test);
break; /*退出開(kāi)關(guān)語(yǔ)句*/
case 2:
printf("%d\n", test);
break;
case 3:
printf("%d\n", test);
break;
default:
puts("Error");
break;
}
}
}
相關(guān)推薦:計(jì)算機(jī)等考二級(jí)C語(yǔ)言備考:C語(yǔ)言/C++編譯過(guò)程北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |