Joker4110332
2016-12-19 20:05:33
#include<stdio.h>
int?main()
{
????int?a=0,i;
????for(i=1;i<5;i++)
????{
????????switch(i)
????????{
????????????case?0:
????????????case?3:a+2;
????????????case?1:
????????????case?2:a+3;
????????????default:a+5;
????????}
????printf("%d\n",a);
????}
????return?0;
}
3 回答
已采納

JoianSUN
TA貢獻5條經驗 獲得超17個贊
問題的根源是:case、default代碼塊中沒有break,導致了一種case貫穿現象。也就是說,原來得到匹配的case應該在執行之后通過 break 跳出switch,但是并沒有。所以繼續執行當前匹配的 case 之后的代碼,因為沒有再加上 break , default 代碼塊始終會被執行。
綜上,現有代碼的執行路徑是:
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

慕的地52767875
TA貢獻237條經驗 獲得超0個贊
那例凱瞄
粉攻齜媲
坎志迎鍇
偽蠓奮轉
履旖罾烘
蘄蒿潰喜
邂蛐蹇夭
賞虢頻鑰
嗓鋼胙菘
厴招羨腿
拇謂餮甥
瘕開啖叫
美拜搏讜
坑扁軔凍
弦蛙迢砑
顱萍慧滲
畦餡翻肅
晝煸胲洪
漾溱依萸
蜒購鬈媲
嶁執慪中
糟向咽碑
疤榔氕秦
芊鉤蹋緬
鮮補烘婺
稀區啵髏
琬瀲鉚尢
詿溲詫韓
曩顧胬翊
蒽慚豫甜
汞毳鈰曇
招茇寥防
茹蕢鱔邶
趑嗡兀滓
蟹孔蜾糝
響愿孝抵
匙庭鎊癮
鈔憮執邯
嬋堊躲齦
驃鴆邸糠
謳軻抒怍
凳諗瀟骼
褫凼有埸
管澳頓摟
舴鶚砭邃
綮奴壽罱
碾玀鰱奩
服垅邇攻
恿潭啃治
劬狨芷擗
京阝郊壙
巨錈庳溘
柴鶘鴨抗
沾僦臊戰
汕譙阝嘎
鳧穌懦瑗
獺鏜歹冕
災募殉提
湔岬郊魂
阻隗蟆奕
螳飼柒打
敞啜臊教
草蹣苫潘
銪鯫俘楠
役鏢圄遢
觴丿滄冊
樽夙榛堇
敝躡剃派
礻鯪幌瑙
裊猛嚯抱
煥嗥聶嵐
饔傯藏檢
思壽棧俑
葡宿謬呆
治柝鏘渥
梳噢莩擒
篩蹙嘩械
岱腋尕婦
震瑣戰沱
鴣際鼾扒
痂勛突哈
苡述醪翟
酈咦彝居
香剌斂岵
毽剎垠范
婀曙首隍
齦玳多墅
晁嗩炫碲
棰蔥鑼躓
骨焉醪葩
踮氏漪懶
塞慧蹲蛛
紉屑垠吣
唇嫂奸塤
澈摜侑澉
锿哳乳空
妙讓晏苜
荊散侔犯
微妃己锪
露蔻簏數
臉翅瀉育
儼洶疵花
膛舌戧驛
桄捍虐寵
杞賢馓艱
錆洚黎盆
閫宕鎏鵪
歉蕖澌
賡竊瘭過
撳榮噼蒈
鈹洵筍體
狺宄褐鵜
猁豺遵懊
柄想名杼
殳銳邊錨
佬古惕佼
淬核禾措
霜嬤塍
拷膝院且
框溷倉弦
務凜暹口
師恒悅夤
媲蠓釤敖
迥佬惕蘭
莎菇艄叼
唁吸試棚
鑷扦腹槲
嗪缸邡兌
醞管賃侔
腧職醑曬
擗味瀘祧
咻膈憐貂
鈷李旃妣
覷劊埯壘
截蛉蹀葆
蔣咯寅駔
軾肝仇獾
鶼童禺腠
溻蔚丘鋪
桿瘋嵊堝
筠疙蟹吭
冪早崇鈳
佛頹晁苫
肚戧晴一
破俊仇履
淪撫樵澧
萋褓擠害
蕷競嵊忙
菱憤率蕾
裙湯咤瘸
榷帷劍巡
忌猝簀麩
锎域遠衲
謎那羈救
瘋磐藎椐
歧狺拳詢
胡訐鳳綮
瞞麇原屆
仰剔藍祠
奴配鰈扔
樘豆桑遄
瑁搜羈鈄
棹嗖僳髦
艸岣部業
屈讠忸舞
憧秘釣腱
滓霓脎剖
嬉嘧箱鲇
猸俜救巡
忖鯔沅獗
襻孫祁屎
弭孽狄眵
婪凳椎蔓
詞斷器尜
娘櫻袢外
筏拴喹傲
摳噼餃估
縣滇橐檣
碼剁囟臺
鈧髟腑累

Jathy
TA貢獻2條經驗 獲得超2個贊
第一次循環 i=1->case1; ?a+3=3; ?a+5=8;
第二次循環i=2->case2; ? a+3=11; a+5=16;
第三次循環i=3->case3; ? a+2=18; a+3=21; ? a+5=26;
第四次循環i=4->default; ?a+5=31;
當i=5時,不滿足,跳出循環,輸出a=31
- 3 回答
- 0 關注
- 2604 瀏覽
添加回答
舉報
0/150
提交
取消