switch語句的執(zhí)行流程
switch語句的執(zhí)行流程是:首先計(jì)算switch后面圓括號中表達(dá)式的值,然后用此值依次與各個(gè)case的常量表達(dá)式比較,若圓括號中表達(dá)式的值與某個(gè)case后面的常量表達(dá)式的值相等,就執(zhí)行此case后面的語句,執(zhí)行后遇break語句就退出switch語句;若圓括號中表達(dá)式的值與所有case后面的常量表達(dá)式都不等,則執(zhí)行default后面的語句,然后退出switch語句,程序流程轉(zhuǎn)向開關(guān)語句的下一個(gè)語句。
在switch-case語句中,多個(gè)case可以共用一條執(zhí)行語句,如:
case 常量表達(dá)式1:
case 常量表達(dá)式2:
case 常量表達(dá)式3:
語句;
break;
執(zhí)行結(jié)果:
由此可以看出case語句的作用:case后面的常量表達(dá)式實(shí)際上只起語句標(biāo)號作用,而不起條件判斷作用,即“只是開始執(zhí)行處的入口標(biāo)號”。因此,一旦與switch后面圓括號中表達(dá)式的值匹配,就從此標(biāo)號處開始執(zhí)行,而且執(zhí)行完一個(gè)case后面的語句后,若沒遇到break語句,就自動(dòng)進(jìn)入下一個(gè)case繼續(xù)執(zhí)行,而不在判斷是否與之匹配,直到遇到break語句才停止執(zhí)行,退出break語句。因此,若想執(zhí)行一個(gè)case分之后立即跳出switch語句,就必須在此分支的最后添加一個(gè)break語句。