switch...case
如果選擇非常多的話,用一堆if...else 會感覺程式碼不漂亮,這時使用switch...case 會好看許多。
Source Code
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int grade;
printf("請輸入代號(1,2,3):");
scanf("%d",&grade);
switch(grade)
{
case 1:printf("你是大學部學生\n");
case 2:printf("你是碩士生\n");
case 3:printf("你是博士生\n");
default:printf("你是進修部學生\n");
}
return 0;
}
執行結果
switch(grade) 的 grade 用來判斷條件的。
程式中
case 1:
case 2:
case 3:
可以等於
if(grade==1)
else if(grade==2)
else if(grade==3)
最後的default 跟 else 有點像,在以上判斷都不成立,才執行default裡面的動作。
但是閣下看輸出結果明顯錯誤,而且錯誤的很有規律,除了執行選到的case 裡的動作,在選到的 case 之下的每個case 都被選到。
選到1:執行1、2、3、default 裡的動作
選到2:執行2、3、default 裡的動作
選到3:執行3、default 裡的動作
選到n:執行default 裡的動作 (n 為任意整數)
那是因為我們少打了一個東西,在if...else 執行的範圍是在{}之中,而switch則是執行到break之前停止。
正確範例在明天更新。