多路開關模式的switch語句
阿新 • • 發佈:2018-01-24
定義 summer text alt 並且 運行圖 watermark 51cto 錯誤 在實例10中,將break語句去掉之後,會將符合檢驗條件後的所有語句都輸出。利用這個特點,可以設計多路開關模式的switch語句,例如:在平年一年12個月,1、3、5、7、8、10、12月是31天,4、6、9、11月是30天,2月是28天,如果在控制臺上任意輸入月份,就可以知道這個月有多少天。這種情況,就可以使用switch語句的多路開關模式,它的形式如下:
switch(表達式) { case 1: 語句1 break; case 2: case 3: 語句2 break; … default: 默認語句 break; }
從形式中可以看到如果在case 2後不使用break語句,那麽符合檢驗時與符合case 3檢驗時的效果是一樣的。也就是說,使用多路開關模式,可以使多種檢驗條件用一個語句塊輸出。
實例11 輸入的某個月份屬於哪個季節
在本實例中,要求使用switch語句判斷控制臺輸入的某個月份屬於哪個季節,已知3、4、5月是春季,6、7、8月為夏季,9、10、11為秋季,12、1、2月為冬季。具體代碼如下:
01 #include<stdio.h> 02 int main() 03 { 04 int month; /*定義變量月份*/ 05 printf("please enter a month:\n"); 06 scanf("%d",&month); /*輸入月份*/ 07 switch(month) /*根據月份分季節*/ 08 { 09 /*多路開關模式*/ 10 case 3: 11 case 4: 12 case 5: 13 printf("%d is spring\n",month); /*3,4,5月是春季*/ 14 break; 15 /*多路開關模式*/ 16 case 6: 17 case 7: 18 case 8: 19 printf("%d is summer\n",month); /*6,7,8月是夏季*/ 20 break; 21 /*多路開關模式*/ 22 case 9: 23 case 10: 24 case 11: 25 printf("%d is autumn\n",month); /*9,10,11月是秋季*/ 26 break; 27 /*多路開關模式*/ 28 case 12: 29 case 1: 30 case 2: 31 printf("%d is winter\n",month); /*12,1,2月是冬季*/ 32 break; 33 default: 34 printf("error!!!\n"); /*無此月份*/ 35 } 36 return 0; /*程序結束*/ 37 }
運行程序,顯示結果如圖6.21所示。
圖6.21 季節運行圖
從該實例代碼和運行結果可以看出:
程序中使用多路開關模式,使得檢測month的值為3、4、5這3種情況時,都會執行相同的操作,並且利用default語句將不符合的數字顯示,提示信息表示輸入錯誤。
練一練:
已知一個燈泡並聯3個開關,分別為開關1,開關2,開關3,;另一串彩燈串聯一個開關4,開關5和開關6並聯一個白熾燈和節能燈,問隨意按下開關哪個燈能亮?
多路開關模式的switch語句