[C语言]如图程序,为什么运行结果为2,2 而不是1,1 请详细解释整个程序是怎么运行的,谢谢
答案:3 悬赏:50 手机版
解决时间 2021-01-22 03:34
- 提问者网友:流星是天使的眼泪
- 2021-01-21 14:12
[C语言]如图程序,为什么运行结果为2,2 而不是1,1 请详细解释整个程序是怎么运行的,谢谢
最佳答案
- 五星知识达人网友:渊鱼
- 2021-01-21 15:22
switch选择的是 case2,但是case2后没加break,没跳出switch,所以还要执行一遍case3
全部回答
- 1楼网友:胯下狙击手
- 2021-01-21 16:50
x/5=2
执行case 2
a b各自自加一次。
没有break
继续执行case 3
ab再各自自加一次
于是 输出
a=2,b=2
执行case 2
a b各自自加一次。
没有break
继续执行case 3
ab再各自自加一次
于是 输出
a=2,b=2
- 2楼网友:雪起风沙痕
- 2021-01-21 16:33
这是由于case 常量表达式只起到语句标号作用,并不是在该处进行条件判断。在执行switch语句时,根据switch后面表达式的值找到匹配的入口标号,就从此标号开始执行下去,不再进行判断。
本题10/5=2,找到case2,执行a++,b++,然后执行case3,再次a++,b++
因此最后的输出结果是2,2,而不是1,1。
如果想只执行case2,需要在后面加break
也就是说,在b++;后面加break; 就可以得到你所说的1,1的结果了。
本题10/5=2,找到case2,执行a++,b++,然后执行case3,再次a++,b++
因此最后的输出结果是2,2,而不是1,1。
如果想只执行case2,需要在后面加break
也就是说,在b++;后面加break; 就可以得到你所说的1,1的结果了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯