#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 关注
- 2439 浏览
添加回答
举报
0/150
提交
取消