1. 程式人生 > 其它 >C語言——控制語句——switch

C語言——控制語句——switch

switch語句  一般的用法就是

  

 1   switch  (表示式)
 2 
 3   case    常量表達式1:  執行 語句  
 4 
 5                                  break 6 
 7   case    常量表達式2:  執行 語句  
 8 
 9                                  break10 
11   default  : 執行語句 

  表示式一般是 整型, char ,int ,short 等 , 如果是浮點型就不行。  (具體原因個人猜測大概是因為浮點數本身,並不是一個具體準確的數, 因為浮點數小數位後 是不準的, 舉個例子就是:

  比如我 float a=1.0;

 但其實實際上可能是0.999999999999998 (無限趨近,但不一定完全相等)。 因此,浮點數做 條件判斷通常是不行, 比如我case 1 但其實並不是1 只是無限趨近, 那麼該不該執行呢?)

Q1: 為什麼default沒有break呢?  

 A1:因為default自帶break  ,執行完後跳出switch;

 Q2: case之後的break是什麼作用呢?

 A2: 跳出整個switch  ,即,當我執行到這個語句執行完了就跳出

 Q3:如果我全部不加break會怎麼樣呢?  

 A3: 假設我滿足  常量表達式2 則會從常量表達式2之後一直執行到有break為止。(如果都沒有的話就會執行到default,因為default自帶break 參考Q1)

 舉個例子  : 

  //由於比較懶,只貼出主要邏輯部分,需執行的話自己補全一下標頭檔案 以及main之類的。

1
int a=2 2 3 switch (a) 4 5 case 1 :printf("case 1"); //當a的條件滿足等於1的時候 執行 6 7 case 2: printf("case 2"); //當a的條件滿足等於2的時候 執行 8 9 case 3: printf("case 3");//當a的條件滿足等於3的時候 執行 10 11
default : printf ("default");//當a的條件不滿足以上case的所有條件時候執行

 如上圖所示,執行了除case1之外的例子,具體可以自己研究一下;