C語言——控制語句——switch
阿新 • • 發佈:2022-05-30
switch語句 一般的用法就是
1 switch (表示式) 2 3 case 常量表達式1: 執行 語句 4 5 break; 6 7 case 常量表達式2: 執行 語句 8 9 break; 10 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 11default : printf ("default");//當a的條件不滿足以上case的所有條件時候執行
如上圖所示,執行了除case1之外的例子,具體可以自己研究一下;