C语言求解

m0_46160372 2020-01-16 04:29:52
为什么答案为x=6,y=6哪位大佬解释下。
...全文
191 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
源代码大师 2021-05-06
  • 打赏
  • 举报
回复
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10768339.html
彼玉 2020-01-17
  • 打赏
  • 举报
回复
switch语句在执行时 到case 1以后会在向下执行case直到遇到break
寻开心 2020-01-17
  • 打赏
  • 举报
回复
缺少break,未必不是程序设计者的本意啊
wipeout 2020-01-17
  • 打赏
  • 举报
回复
#include<stdio.h>
int main(void)
{
	int x=1,y=1;
	int m,n;
	m=n=1;
	switch(m)
	{
		case 0:
			x=x+2;
			break;
		case 1:
			{
				switch(n)
					{
						case 1:x=x*2;break;
						case 2:y=y*2;break;
						case 3:x++;break;
					}
				break;
			}
		case 2:
			x++;y++;
			break;
		case 3:
			x*=2;y*=2;
			break;
		default:
			x++;
			y++;
			break;
	}
	printf("%d %d\n",x,y);
	return 0;
}
wipeout 2020-01-17
  • 打赏
  • 举报
回复
缺少break吧
qq_1457346882 2020-01-16
  • 打赏
  • 举报
回复
没有加break的case会从你判断进入的case开始一直往下执行,不论下面的case的值是不是匹配,知道遇到break或执行结束为止
m0_46160372 2020-01-16
  • 打赏
  • 举报
回复
了解 谢谢大佬
寻开心 2020-01-16
  • 打赏
  • 举报
回复
case 1: x*=2;
case 2:y*=2; break;

因为 x*=2; 后面没有break, 它就会继续向下运行 case 2:部分的语句, 一直到遇到break为止

从内层的switch case语句出来,继续运行到break才推出外层的switch语句

看看书上关于case语句的描述, 有break和没有break的区别

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧