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