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的最终值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |