鱼C论坛

 找回密码
 立即注册
查看: 3962|回复: 5

C输出问题

[复制链接]
发表于 2012-10-15 10:39:32 | 显示全部楼层 |阅读模式
3鱼币
  1. #include<stdio.h>
  2. int main()
  3. {
  4. int x=1,y=0;
  5. switch(x)
  6. {case 1:
  7. switch(y)
  8. {case 0:printf("**1**\n");break;
  9.   case 1:printf("**2**\n");break;
  10. }
  11. case 2:printf("**3**\n");
  12. }
  13. return 0;
  14. }
复制代码
为什么"**3**会输出?

最佳答案

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-10-15 10:39:33 | 显示全部楼层
  1. #include<stdio.h>
  2. int main()
  3. {
  4. int x=1,y=0;
  5. switch(x)
  6. {case 1:
  7. switch(y)
  8. {case 0:printf("**1**\n");break;
  9.   case 1:printf("**2**\n");break;
  10. }break;          //这样加上break;就没有case2的输出了,如果不加,switch会自动执行下面的case
  11.                      //直到遇到break或者函数结束。你可以看看小甲鱼老师的分支结构程序设计第四个视频。
  12. case 2:printf("**3**\n");
  13. }
  14. return 0;
  15. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-10-15 10:56:49 | 显示全部楼层
后面少break
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2012-10-15 11:07:34 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-10-15 12:09:23 | 显示全部楼层
#include<stdio.h>
int main()
{
int x=1,y=0;
switch(x)
{
case 1:
switch(y)
{
case 0:printf("**1**\n");break;
  case 1:printf("**2**\n");break;
}
break;
case 2:printf("**3**\n");break;
}
return 0;
}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2012-10-15 17:15:44 | 显示全部楼层
输出应该是**1**和**3**吧,在case 2:printf前面加上break;就对了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-15 16:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表