首頁 > 人文
switch語句的使用方法
由 電子榮耀 發表于 人文2022-12-31
簡介(2) default分支是可選的,當一個switch語句中沒有default分支時,如果沒有與switch表示式的值相同的case常量,則不執行任何語句,程式轉移到switch語句的下一條語句執行
switch語句屬於什麼語句
使用if語句巢狀解決實際問題中的多分支選擇時,如果分支數目非常多,那麼if語句的巢狀層數也會很多,使得程式程式碼變得冗長而且可讀性會下降。C語言提供了switch語句來處理多分支選擇。
switch語句的語法形式如下:
switch(表示式){
case 常量1: 語句或語句組1;
case 常量2: 語句或語句組2;
……
case 常量n: 語句或語句組n;
default: 語句或語句組n+1;
}
例:從鍵盤上輸入一個字元,判斷並輸出它是數字、空格還是其他字元,如果是空格,則輸出空格提示;如果是數字,則輸出是哪一個數字;如果是其它字元,則輸出其它提示。
思路分析:從題目可知,需要判斷分支比較多,包括10個數字字元、1個空格字元和其他字元共12個分支,使用switch語句解決該問題比較方便,同時仔細分析可以發現10個數字字元的處理方式是相同的,因此這10個分支可以共用同一組語句,程式流程如圖所示。
#include
intmain()
{
char ch;
printf(“Input a character: ”);
ch=getchar();
switch(ch)
{
case‘0’:
case‘1’:
case‘2’:
case‘3’:
case‘4’:
case‘5’:
case‘6’:
case‘7’:
case‘8’:
case‘9’:
printf(“digit:%c\n”,ch);
break;
case‘ ’:
printf(“space\n”);
break;
default:
printf(“other\n”);
}
return0;
}
使用switch語句的注意事項
(1) switch後面表示式的值的型別必須是整型、字元型或列舉型別。每一個case常量的型別必須與表示式值的型別相同,而且每個case常量的值必須是互不相同的。
(2) default分支是可選的,當一個switch語句中沒有default分支時,如果沒有與switch表示式的值相同的case常量,則不執行任何語句,程式轉移到switch語句的下一條語句執行。
(3) 各個case分支及default分支的出現次序可以交換,無論如果排列各個分支的次序,總是按照switch表示式的值來選擇某個分支執行。
(4)一個case塊內的程式碼執行完畢,如果沒有遇到break,後面還有case塊,則繼續執行該case塊內的程式碼。