解析c語言switch中break語句的具體作用
問題:
break在for循環(huán)、while循環(huán)等循環(huán)流程控制中起的作用是停止執(zhí)行break后面的語句,跳出本次循環(huán),并跳出該循環(huán)控制體;
在switch條件選擇中,沒有了循環(huán)控制,break又起什么作用呢?
解決辦法:
1. switch語句的執(zhí)行流程是:
首先計算switch后面圓括號中表達式的值,然后用此值依次與各個case的常量表達式比較,
若圓括號中表達式的值與某個case后面的常量表達式的值相等,就執(zhí)行此case后面的語句,執(zhí)行后遇到break語句就退出switch語句,程序流程轉(zhuǎn)向開關(guān)語句的下一個語句;
若圓括號中表達式的值與所有case后面的常量表達式都不等,則執(zhí)行default后面的語句,然后退出switch語句,程序流程轉(zhuǎn)向開關(guān)語句的下一個語句。
在switch-case語句中,多個case可以共用一條執(zhí)行語句,如:
case 常量表達式1:
case 常量表達式2:
case 常量表達式3:
語句;
break;
由此可以看出case語句的作用:
case后面的常量表達式實際上只起語句標(biāo)號作用,而不起條件判斷作用,即“只是開始執(zhí)行處的入口標(biāo)號”。
因此,一旦與switch后面圓括號中表達式的值匹配,就從此標(biāo)號處開始執(zhí)行;
而且執(zhí)行完一個case后面的語句后,若沒遇到break語句,就自動進入下一個case繼續(xù)執(zhí)行,而不再判斷是否與之匹配,直到遇到break語句才停止執(zhí)行,退出switch語句。
因此,若想執(zhí)行一個case分之后立即跳出switch語句,就必須在此分支的最后添加一個break語句。
2. 從上面的描述可以看出,switch條件選擇語句中的break的作用跟循環(huán)控制語句中的作用基本相同:
都是不執(zhí)行break之后的語句,并結(jié)束退出switch語句;
3. 與循環(huán)控制中存在continue語句不同的是,switch條件選擇語句中沒有continue語句;
ok問題解決。
相關(guān)文章
C語言新手練習(xí)之多維數(shù)組、結(jié)構(gòu)體及函數(shù)
這篇文章主要給大家介紹了關(guān)于C語言新手練習(xí)之多維數(shù)組、結(jié)構(gòu)體及函數(shù)的相關(guān)資料,這些內(nèi)容在我們?nèi)粘i_發(fā)中經(jīng)常會遇到的,需要的朋友可以參考下2021-06-06
使用mmap實現(xiàn)大文件的復(fù)制(單進程和多進程)
這篇文章主要為大家詳細介紹了使用mmap實現(xiàn)大文件的復(fù)制,單進程與多進程的兩種情況,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-10-10
C 與 C++ 接口函數(shù)相互調(diào)用的實現(xiàn)
這篇文章主要介紹了C 與 C++ 接口函數(shù)相互調(diào)用的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03

