为什么输出是011122

鬼不可怕的账号 2019-10-10 02:29:00
main() { int i; for(i=0;i<3;i++) switch(i) { case 1: printf("%d",i); case 2: printf("%d",i); default: printf("%d",i); } }
...全文
138 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
liups 2019-10-10
  • 打赏
  • 举报
回复
case 这里只是入口,如果没有break则会继续执行
自信男孩 2019-10-10
  • 打赏
  • 举报
回复
引用 2 楼 weixin_45721994 的回复:
为什么i=1时,会执行case2

没有break呀,break是退出switch的点。
基础的知识建议多了解和学习
弓人水 2019-10-10
  • 打赏
  • 举报
回复
打个比喻,Switch好比一个电梯,每个case是买个楼层的入口,break是电梯出口,当条件满足case的时候,就会从这个入口向下坐电梯,一直遇到break出口才会结束。。。
所以,i=1的时候,会从case 1向下坐电梯,但是case 1没有break,会继续经过case2,还是没有break,又继续经过default....
636f6c696e 2019-10-10
  • 打赏
  • 举报
回复
没有break会继续执行,不会跳出
liwq_jn 2019-10-10
  • 打赏
  • 举报
回复
case后不写break,不会跳出switch,会继续顺序执行代码。
  • 打赏
  • 举报
回复
为什么i=1时,会执行case2
自信男孩 2019-10-10
  • 打赏
  • 举报
回复
因为switch中没有break,
当i=0时,执行default
当i=1时,执行case 1, case 2, default
当i=2时,执行case 2,default

69,368

社区成员

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

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