首頁  >  文章  >  後端開發  >  在switch語句中,case後面的標號只能是什麼?

在switch語句中,case後面的標號只能是什麼?

青灯夜游
青灯夜游原創
2020-07-29 14:13:097760瀏覽

在switch語句中,case後面的標號只能是常數表達式。在一個特定的switch語句中,每個case常數都必須具有獨一無二的值,不可以重複。但是switch語句可以包含多個case標籤。

在switch語句中,case後面的標號只能是什麼?

switch語句用於基於不同條件執行不同動作。

語法格式:

switch (变量表达式)
{
case 常量1:
   语句;break;
case 常量2:
   语句;break;
case 常量3:
   语句;break;
...
case 常量n:
   语句;break;
default:
   语句;break;
}

switch語句是條件選擇語句,找到相同的case值做為執行後面的程式入口;若所有的case都不滿足,則找default入口;若未找到default入口則退出整個switch語句。

case 後的常數指的是常數表達式。在一個特定的 switch 語句中,每個 case 常數必須具有獨一無二的值,不可以重複。但是 switch 語句可以包含多個 case 標籤。

default 標籤是可選的,可以放在 switch 語句體內任何位置。如果沒有 default 標籤,且沒有任何 case 常數符合 switch 語句控製表達式的計算結果,那麼 switch 語句體中的語句都不會執行。在這種情況下,程式流程會轉而執行 switch 語句體後面的語句。

switch 語句體通常是從 case 標籤開始的語句區塊。如果在第一個 case 標籤之前有語句,這些語句並不會被執行。

C 語言的標籤只用於標識程式流程可能跳到的目的地。這些標籤本身對程式沒有影響。因此,從 switch 跳到第一個符合條件的 case 標籤之後,程式會繼續依序執行,不受其他標籤的影響。

如果在這個符合條件的case 標籤之後,其他case 標籤中的語句應該被忽略,就應該在所執行的最後一條語句後,加上break 語句,使得程式流直接跳到switch語句體的後面。

如果需要在switch 語句內宣告變量,那麼這些變數應該被宣告在巢狀的內部語句區塊中,如下所示:

switch ( x )
{
   case C1: { int temp = 10;    // 声明temp,仅为该case使用
              /* ... */
            }
            break;
   case C2:
            /* ... */
}

在switch 表達式中,應用了整數提升。 case 常數轉換為符合 switch 表達式計算結果的型別。

也可改用 else if 語句來實現 switch/case 語句效果。但如果依據一個整數表達式的值來判斷程式流程,則應該使用 switch/case 語句,這種方式可以提高程式碼的可閱讀性。

推薦:《c語言教學

以上是在switch語句中,case後面的標號只能是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn