加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – switch语句和递增运算符

发布时间:2020-12-16 06:48:16 所属栏目:百科 来源:网络整理
导读:我写了以下代码: int i = 0; switch(i++) { case 0: cout 0; case 1: cout 1;} cout "n" i; 代码的输出是这样的: 01 1 任何人都可以解释第一行输出?为什么0和1都被打印? 解决方法 首先,表达式i(后增量运算符)的计算结果为0(即使它将i的值设置为1).因此
我写了以下代码:

int i = 0;  
switch(i++)  
{
   case 0:  
     cout << 0;  
   case 1:  
     cout << 1;
}  
cout << "n" << i;

代码的输出是这样的:

01  
1

任何人都可以解释第一行输出?为什么0和1都被打印?

解决方法

首先,表达式i(后增量运算符)的计算结果为0(即使它将i的值设置为1).因此在开关内部,选择了case 0:branch.

然后,因为在你的情况0:之后没有中断,程序继续执行case 1:label中的代码.

总结一下,你有:第一个开关分支为0,第二个分支为1,另一个为1,因为这是i的最终值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读