• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

输出的结果为什么等于31?求详细过程

#includeint main(){    int a=0,i;    for(i=1;i

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与3

问题的根源是:case、default代码块中没有break,导致了一种case贯穿现象。也就是说,原来得到匹配的case应该在执行之后通过 break 跳出switch,但是并没有。所以继续执行当前匹配的 case 之后的代码,因为没有再加上 break , default 代码块始终会被执行。


综上,现有代码的执行路径是:
i = 1:

case1:case2:a+3;//a=0+3=3default:a+5;//a=3+5=8i = 2:
case2:a+3;//a=8+3=11default:a+5;//a=11+5=16i = 3:
case3:a+2;//a=16+2=18case1:case2:a+3;//a=18+3=21default:a+5;//a=21+5=26i = 4:
default:a+5;//a=26+5=31因此,最终是 31

使用道具 举报

这是输出四个0吧?

使用道具 举报

break是结束跳转的意思,应该有这门课程的你咋没学到这个关键字

使用道具 举报

发新帖

发布任务需求已有1031166位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!