解析c語(yǔ)言switch中break語(yǔ)句的具體作用
問題:
break在for循環(huán)、while循環(huán)等循環(huán)流程控制中起的作用是停止執(zhí)行break后面的語(yǔ)句,跳出本次循環(huán),并跳出該循環(huán)控制體;
在switch條件選擇中,沒有了循環(huán)控制,break又起什么作用呢?
解決辦法:
1. switch語(yǔ)句的執(zhí)行流程是:
首先計(jì)算switch后面圓括號(hào)中表達(dá)式的值,然后用此值依次與各個(gè)case的常量表達(dá)式比較,
若圓括號(hào)中表達(dá)式的值與某個(gè)case后面的常量表達(dá)式的值相等,就執(zhí)行此case后面的語(yǔ)句,執(zhí)行后遇到break語(yǔ)句就退出switch語(yǔ)句,程序流程轉(zhuǎn)向開關(guān)語(yǔ)句的下一個(gè)語(yǔ)句;
若圓括號(hào)中表達(dá)式的值與所有case后面的常量表達(dá)式都不等,則執(zhí)行default后面的語(yǔ)句,然后退出switch語(yǔ)句,程序流程轉(zhuǎn)向開關(guān)語(yǔ)句的下一個(gè)語(yǔ)句。
在switch-case語(yǔ)句中,多個(gè)case可以共用一條執(zhí)行語(yǔ)句,如:
case 常量表達(dá)式1:
case 常量表達(dá)式2:
case 常量表達(dá)式3:
語(yǔ)句;
break;
由此可以看出case語(yǔ)句的作用:
case后面的常量表達(dá)式實(shí)際上只起語(yǔ)句標(biāo)號(hào)作用,而不起條件判斷作用,即“只是開始執(zhí)行處的入口標(biāo)號(hào)”。
因此,一旦與switch后面圓括號(hào)中表達(dá)式的值匹配,就從此標(biāo)號(hào)處開始執(zhí)行;
而且執(zhí)行完一個(gè)case后面的語(yǔ)句后,若沒遇到break語(yǔ)句,就自動(dòng)進(jìn)入下一個(gè)case繼續(xù)執(zhí)行,而不再判斷是否與之匹配,直到遇到break語(yǔ)句才停止執(zhí)行,退出switch語(yǔ)句。
因此,若想執(zhí)行一個(gè)case分之后立即跳出switch語(yǔ)句,就必須在此分支的最后添加一個(gè)break語(yǔ)句。
2. 從上面的描述可以看出,switch條件選擇語(yǔ)句中的break的作用跟循環(huán)控制語(yǔ)句中的作用基本相同:
都是不執(zhí)行break之后的語(yǔ)句,并結(jié)束退出switch語(yǔ)句;
3. 與循環(huán)控制中存在continue語(yǔ)句不同的是,switch條件選擇語(yǔ)句中沒有continue語(yǔ)句;
ok問題解決。
相關(guān)文章
C++結(jié)構(gòu)體struct和類class區(qū)別詳解
struct和class有什么區(qū)別?最本質(zhì)的一個(gè)區(qū)別就是默認(rèn)的訪問控制:默認(rèn)的繼承訪問權(quán)限,struct是public的,class是private的。2017-11-11深入了解C語(yǔ)言的動(dòng)態(tài)內(nèi)存管理
所謂動(dòng)態(tài)和靜態(tài)就是指內(nèi)存的分配方式。動(dòng)態(tài)內(nèi)存是指在堆上分配的內(nèi)存,而靜態(tài)內(nèi)存是指在棧上分配的內(nèi)存,本文將用5600字帶你深入了解動(dòng)態(tài)內(nèi)存管理,感興趣的可以學(xué)習(xí)一下2022-07-07數(shù)據(jù)結(jié)構(gòu) 雙機(jī)調(diào)度問題的實(shí)例詳解
這篇文章主要介紹了數(shù)據(jù)結(jié)構(gòu) 雙機(jī)調(diào)度問題的實(shí)例詳解的相關(guān)資料,雙機(jī)調(diào)度問題,又稱獨(dú)立任務(wù)最優(yōu)調(diào)度:用兩臺(tái)處理機(jī)A和B處理n個(gè)作業(yè)的實(shí)例,需要的朋友可以參考下2017-08-08C語(yǔ)言實(shí)現(xiàn)ATM機(jī)存取款系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)ATM機(jī)存取款系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11通過一個(gè)小例子來簡(jiǎn)單理解C語(yǔ)言中的內(nèi)存空間管理
這篇文章主要介紹了通過一個(gè)小例子來簡(jiǎn)單理解C語(yǔ)言中的內(nèi)存空間管理,涉及到堆和棧等數(shù)據(jù)結(jié)構(gòu)的基本知識(shí),需要的朋友可以參考下2015-11-11