1.3.3 開關語句
在編寫程序時,經常會碰到按不同情況分轉的多路問題,這時可用嵌套if-else-if語句來實現,但if-else-if語句使用不方便,並且容易出錯。對這種情況,Turbo C2.0提供了一個開關語句。開關語句格式為:
switch(變量)
{
case 常量1:
語句1或空;
case 常量2:
語句2或空;
.
.
.
case 常量n;
語句n或空;
default:
語句n+1或空;
}
執行switch開關語句時,將變量逐個與case後的常量進行比較,若與其中一個相等,則執行該常量下的語句,若不與任何一個常量相等, 則執行default後面的語句。
注意:
1.switch中變量可以是數值,也可以是字符。
2.可以省略一些case和default。
3.每個case或default後的語句可以是語句體,但不需要使用"{"和"}"括起來。
下例的switch中變量為整數型。
例19:
main()
{
int test;
for(test=0; test<=10; test++)
{
switch(test) /*變量為整型數的開關語句*/
{
case 1:
printf("%d\n", test);
break; /*退出開關語句*/
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) /*循環直到按Esc鍵結束*/
{
c=getch(); /*從鍵盤不回顯接收一個字符*/
switch(c)
{
case 'A': /*接收的字符為'A'*/
putchar(c);
break; /*退出開關語句*/
case 'B':
putchar(c);
break;
default: /*接收的字符非'A'和'B'*/
puts("Error");
break;
}
}
}