3 回答

TA貢獻(xiàn)5條經(jīng)驗(yàn) 獲得超17個(gè)贊
問題的根源是:case、default代碼塊中沒有break,導(dǎo)致了一種case貫穿現(xiàn)象。也就是說,原來得到匹配的case應(yīng)該在執(zhí)行之后通過 break 跳出switch,但是并沒有。所以繼續(xù)執(zhí)行當(dāng)前匹配的 case 之后的代碼,因?yàn)闆]有再加上 break , default 代碼塊始終會(huì)被執(zhí)行。
綜上,現(xiàn)有代碼的執(zhí)行路徑是:
i = 1:
case?1: case?2:a+3;??//??a?=?0?+?3?=?3 default:a+5;??//??a?=?3?+?5?=?8
i = 2:
case?2:a+3;??//??a?=?8?+?3?=?11 default:a+5;??//??a?=?11?+?5?=?16
i = 3:
case?3:a+2;??//????a?=?16?+?2?=18 case?1: case?2:a+3;?//??a?=?18?+?3?=?21 default:a+5;?//??a?=?21?+?5?=?26
i = 4:
default:a+5;?//??a?=?26?+?5?=?31
因此,最終是 31

TA貢獻(xiàn)3593條經(jīng)驗(yàn) 獲得超1個(gè)贊

TA貢獻(xiàn)237條經(jīng)驗(yàn) 獲得超0個(gè)贊

TA貢獻(xiàn)17條經(jīng)驗(yàn) 獲得超9個(gè)贊
break是結(jié)束跳轉(zhuǎn)的意思,應(yīng)該有這門課程的你咋沒學(xué)到這個(gè)關(guān)鍵字

TA貢獻(xiàn)2條經(jīng)驗(yàn) 獲得超2個(gè)贊
第一次循環(huán) i=1->case1; ?a+3=3; ?a+5=8;
第二次循環(huán)i=2->case2; ? a+3=11; a+5=16;
第三次循環(huán)i=3->case3; ? a+2=18; a+3=21; ? a+5=26;
第四次循環(huán)i=4->default; ?a+5=31;
當(dāng)i=5時(shí),不滿足,跳出循環(huán),輸出a=31
- 3 回答
- 0 關(guān)注
- 2628 瀏覽
添加回答
舉報(bào)