|
. case 常量n; 語句n或空; default: 語句n+1或空; }
執(zhí)行switch開關(guān)語句時, 將變量逐個與case后的常量進(jìn)行比較, 若與其中一個相等, 則執(zhí)行該常量下的語句, 若不與任何一個 常量相等, 則執(zhí)行default 后面的語句。 注意: 1. switch中變量可以是數(shù)值, 也可以是字符。 2. 可以省略一些case和default。 3. 每個case或default后的語句可以是語句體, 但不需要使用"{"和"}"括起來。
下例的switch中變量為整數(shù)型。
例19:
main() { int test; for(test=0; test<=10; test++) { switch(test) /*變量為整型數(shù)的開關(guān)語句*/ { case 1: printf("%d\n", test); break; /*退出開關(guān)語句*/ case 2: printf("%d\n", test); break; case 3: printf("%d\n", test); break; default: puts("Error"); break; } } }
下例的switch中變量為字符型。
例20:
#include<stdio.h> 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)語句中。當(dāng)break用于開關(guān)語句switch中時, 可使程序跳出switch而執(zhí)行switch以后的語 句; 如果沒有break語句, 則將成為一個死循環(huán)而無法退出。break在switch 中的用法已在前面介紹開關(guān)語句時的例子中碰到,這 里不再舉例。 當(dāng)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鍵不輸出便進(jìn)行下次循環(huán)*/ printf("%c\n", c); } }
1.3.4.3 goto 語句 goto語句是一種無條件轉(zhuǎn)移語句, 與BASIC中的goto語句相似。goto 語句的使用格式為:
goto 標(biāo)號;
其中標(biāo)號是Turbo C2.0中一個有效的標(biāo)識符, 這個標(biāo)識符加上一個":" 一起出現(xiàn)在函數(shù)內(nèi)某處, 執(zhí)行g(shù)oto語句后, 程序?qū)⑻D(zhuǎn) 到該標(biāo)號處并執(zhí)行其后的語句。另外標(biāo)號必須與goto語句同處于一個函數(shù)中, 但可以不在一個循環(huán)層中。通常 goto 語句與if條件 語句連用, 當(dāng)滿足某一條件時, 程序跳到標(biāo)號處運行。 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"); }
|