下例的switch中變量為字符型。
例20:
#include
main()
{
char c;
while(c!=27) /*循環(huán)直到按Esc鍵結(jié)束*/
{
c=getch(); /*從鍵盤不回顯接收一個(gè)字符*/
switch(c)
{
case ’A’: /*接收的字符為’A’*/
putchar(c);
break; /*退出開(kāi)關(guān)語(yǔ)句*/
case ’B’:
putchar(c);
break;
default: /*接收的字符非’A’和’B’*/
puts("Error");
break;
}
}
}
1.3.4 break、continue和goto語(yǔ)句
1.3.4.1 break語(yǔ)句
break語(yǔ)句通常用在循環(huán)語(yǔ)句和開(kāi)關(guān)語(yǔ)句中。當(dāng)break用于開(kāi)關(guān)語(yǔ)句switch中時(shí), 可使程序跳出switch而執(zhí)行switch以后的語(yǔ)句; 如果沒(méi)有break語(yǔ)句, 則將成為一個(gè)死循環(huán)而無(wú)法退出。break在switch 中的用法已在前面介紹開(kāi)關(guān)語(yǔ)句時(shí)的例子中碰到, 這里不再舉例。
當(dāng)break語(yǔ)句用于do-while、for、while循環(huán)語(yǔ)句中時(shí), 可使程序終止循環(huán)而執(zhí)行循環(huán)后面的語(yǔ)句, 通常break語(yǔ)句總是與if語(yǔ)句聯(lián)在一起。 即滿足條件時(shí)便跳出循環(huán)。
例19:
main()
{
int i=0;
char c;
while(1) /*設(shè)置循環(huán)*/
{
c=’\0’; /*變量賦初值*/
while(c!=13&&c!=27) /*鍵盤接收字符直到按回車或Esc鍵*/
{
c=getch();
printf("%c\n", c);
}
if(c==27)
break; /*判斷若按Esc鍵則退出循環(huán)*/
i++;
printf("The No. is %d\n", i);
}
printf("The end");
}
注意:
1. break語(yǔ)句對(duì)if-else的條件語(yǔ)句不起作用。
2. 在多層循環(huán)中, 一個(gè)break語(yǔ)句只向外跳一層。
1.3.4.2 continue 語(yǔ)句
continue語(yǔ)句的作用是跳過(guò)循環(huán)本中剩余的語(yǔ)句而強(qiáng)行執(zhí)行下一次循環(huán)。
continue語(yǔ)句只用在for、while、do-while等循環(huán)體中, 常與if條件語(yǔ)句一起使用, 用來(lái)加速循環(huán)。
例20:
main()
{
char c;
while(c!=0X0D) /*不是回車符則循環(huán)*/
{
c=getch();
if(c==0X1B)
continue; /*若按Esc鍵不輸出便進(jìn)行下次循環(huán)*/
printf("%c\n", c);
}
}
1.3.4.3 goto 語(yǔ)句
goto語(yǔ)句是一種無(wú)條件轉(zhuǎn)移語(yǔ)句, 與BASIC中的goto語(yǔ)句相似。goto 語(yǔ)句的 使用格式為:
goto 標(biāo)號(hào);
其中標(biāo)號(hào)是Turbo C2.0中一個(gè)有效的標(biāo)識(shí)符, 這個(gè)標(biāo)識(shí)符加上一個(gè)":" 一起出現(xiàn)在函數(shù)內(nèi)某處, 執(zhí)行g(shù)oto語(yǔ)句后, 程序?qū)⑻D(zhuǎn)到該標(biāo)號(hào)處并執(zhí)行其后的語(yǔ)句。另外標(biāo)號(hào)必須與goto語(yǔ)句同處于一個(gè)函數(shù)中, 但可以不在一個(gè)循環(huán)層中。通常goto語(yǔ)句與if條件語(yǔ)句連用, 當(dāng)滿足某一條件時(shí), 程序跳到標(biāo)號(hào)處運(yùn)行。
goto語(yǔ)句通常不用, 主要因?yàn)樗鼘⑹钩绦驅(qū)哟尾磺? 且不易讀, 但在多層嵌套退出時(shí), 用goto語(yǔ)句則比較合理。
例19用goto語(yǔ)句時(shí)變?yōu)?
例21:
main()
{
int i=0;
char c;
while(1)
{
c=’\0’;
while(c!=13)
{
c=getch();
if(c==27)
goto quit;
printf("%c\n", c);
}
i++;
printf("The No. is %d\n", i);
}
quit:
printf("The end");
相關(guān)推薦:計(jì)算機(jī)等考二級(jí)C語(yǔ)言備考:C語(yǔ)言/C++編譯過(guò)程北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |