switch 敘述的使用

◎も使用時機:當程式流程進行中,需要根據某個變數或運算式之值來決定接下來的動作時,就是使用switch敘述的時機。例如根據讀取的 選項值來決定接下來的動作等。

◎も語法:

switch (變數或運算式)                  (例)  int  choose;
{                                                     
    printf ("請選擇中意物品:1.珠寶豪宅  2.國務機要費  3.國庫") ;
    case  值1 :  敘述群1 ;                   
    scanf ("%d", &choose) ;
                      break ;                            switch (choose)
    case  值2 :  敘述群2 ;                   
    {
                      break ;                       
        case 1 : printf ("貪污罪,抓去關二十年!\n") ;
    .......................................                        
               break ;
    case  值n :  敘述群n ;             
              case 2 : printf ("貪污兼圖利罪,關到死!\n") ;
                      break ;                                     
      break ;
    default : 備用敘述群 ;                       
   case 3 : printf ("無恥至極罪,全家砍頭!\n") ; 
}
                                                                          printf("全部家產充公!\n");
                                                                        
   break ;
                                                            
  default : printf("沒貪污,人格貴重!非常好!");
                                                         
  }

此敘述會依據括號內『變數或運算式』的值,然後逐一檢視各個case中的值,直到找出符合的值,然後執行該case後的敘述群,直到碰到break敘述為止。如果沒有任何case值符合,那就執行最後一項default後的「備用敘述群」。要注意的是:(a) 每個敘述群可以有1或多個敘述,且不需要加大括號,只需用break敘述做結尾即可。(b) default選項視情況也可以省略不加。 (c) 如果某個 case之後的 break敘述省略,那麼執行到此case時,不但會執行該case的敘述群,而且還會繼續往下執行其它case的敘述,直到碰到break敘述為止。

 

基本上 switch敘述屬於『多選一』的形式,但是它與 if... else if...敘述有所不同,其主要的差異在於switch適合於依據『某個變數或運算式之值』來決定動作;而 if... else if...則適合於依據『不同的條件式,特別是組合條件』來決定後續動作。