在switch语句中,case后的标号只能是什么?
switch語(yǔ)句用于基于不同條件執(zhí)行不同動(dòng)作。
語(yǔ)法格式:
switch (變量表達(dá)式)
{
case 常量1:
???語(yǔ)句;break;
case 常量2:
???語(yǔ)句;break;
case 常量3:
???語(yǔ)句;break;
...
case 常量n:
???語(yǔ)句;break;
default:
???語(yǔ)句;break;
}
switch語(yǔ)句是一個(gè)條件選擇語(yǔ)句,找到相同的case值做為執(zhí)行后面的程序入口;若所有的case都不滿足,則找default入口;若未找到default入口則退出整個(gè)switch語(yǔ)句。
case 后的常量指的是常量表達(dá)式。在一個(gè)特定的 switch 語(yǔ)句中,每個(gè) case 常量都必須具有獨(dú)一無(wú)二的值,不可以重復(fù)。但是 switch 語(yǔ)句可以包含多個(gè) case 標(biāo)簽。
default 標(biāo)簽是可選的,可以放在 switch 語(yǔ)句體內(nèi)任何位置。如果沒(méi)有 default 標(biāo)簽,并且沒(méi)有任何 case 常量符合 switch 語(yǔ)句控制表達(dá)式的計(jì)算結(jié)果,那么 switch 語(yǔ)句體中的語(yǔ)句都不會(huì)執(zhí)行。在這種情況下,程序流會(huì)轉(zhuǎn)而執(zhí)行 switch 語(yǔ)句體后面的語(yǔ)句。
switch 語(yǔ)句體通常是一個(gè)從 case 標(biāo)簽開(kāi)始的語(yǔ)句塊。如果在第一個(gè) case 標(biāo)簽之前有語(yǔ)句,這些語(yǔ)句并不會(huì)被執(zhí)行。
C 語(yǔ)言的標(biāo)簽只用于標(biāo)識(shí)程序流可能跳轉(zhuǎn)到的目的地。這些標(biāo)簽本身對(duì)程序沒(méi)有影響。因此,從 switch 跳轉(zhuǎn)到第一個(gè)符合條件的 case 標(biāo)簽之后,程序會(huì)繼續(xù)順序執(zhí)行,不受其他標(biāo)簽的影響。
如果在這個(gè)符合條件的 case 標(biāo)簽之后,其他 case 標(biāo)簽中的語(yǔ)句應(yīng)該被忽略,就應(yīng)該在所執(zhí)行的最后一條語(yǔ)句后,加上 break 語(yǔ)句,使得程序流直接跳轉(zhuǎn)到 switch 語(yǔ)句體的后面。
如果需要在 switch 語(yǔ)句內(nèi)聲明變量,那么這些變量應(yīng)該被聲明在嵌套的內(nèi)部語(yǔ)句塊中,如下所示:
switch ( x )
{
???case C1: { int temp = 10;??? // 聲明temp,僅為該case使用
??????????????/* ... */
????????????}
????????????break;
???case C2:
????????????/* ... */
}
在 switch 表達(dá)式中,應(yīng)用了整數(shù)提升。case 常量被轉(zhuǎn)換為匹配 switch 表達(dá)式計(jì)算結(jié)果的類(lèi)型。
也可改用 else if 語(yǔ)句來(lái)實(shí)現(xiàn) switch/case 語(yǔ)句效果。但是如果依據(jù)一個(gè)整數(shù)表達(dá)式的值來(lái)判斷程序流,則應(yīng)該使用 switch/case 語(yǔ)句,這種方式可以提高代碼的可閱讀性。
聲明:
本文于網(wǎng)絡(luò)整理,版權(quán)歸原作者所有,如來(lái)源信息有誤或侵犯權(quán)益,請(qǐng)聯(lián)系我們刪除或授權(quán)事宜。
總結(jié)
以上是生活随笔為你收集整理的在switch语句中,case后的标号只能是什么?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: iOS16.5 准正式版更新内容汇总
- 下一篇: 快捷键调节屏幕显示大小(改变屏幕大小快捷