A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 13569403973 中级黑马   /  2015-6-9 22:32  /  358 人查看  /  17 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int a=2;
switch(a)
  case2:
     System.out.println("b");
case1:
     System.out.println("c");
     break;
为啥程序运行后会同时打印出bc?

17 个回复

倒序浏览
System.out.println("b");的后面加上break;就只会打印b
回复 使用道具 举报
case 穿透
回复 使用道具 举报
case 2 情况后面没有break中断,顺序执行
回复 使用道具 举报
q757571446 发表于 2015-6-9 22:45
case 2 情况后面没有break中断,顺序执行

嗯, 你说的太有道理了,终于弄明白了
回复 使用道具 举报
翟超杰 来自手机 中级黑马 2015-6-9 23:51:17
地板
楼上一句case穿透,直接道出精髓来自: iPhone客户端
回复 使用道具 举报
case2 那的输出语句完后加上break
回复 使用道具 举报
msxhm 中级黑马 2015-6-10 00:16:05
8#
switch语句是执行到第一break或者语句末尾结束,符合条件的case2后面没有break,接着再继续执行,直到遇到break或者执行到switch语句末尾才算结束
回复 使用道具 举报
你的第一个case的最后没有加break;程序就会继续往下走,就会走到第二个case了
回复 使用道具 举报
第一个case没有中断程序break;
回复 使用道具 举报
case 1 穿透
回复 使用道具 举报
case2:语句最后加上break;
回复 使用道具 举报
坐看大水牛
回复 使用道具 举报
少写了break
回复 使用道具 举报
除了最后一个,所有的case后面都要添加break;
回复 使用道具 举报
case2后面也要break 的
回复 使用道具 举报
新的东西  有学习到了,大家讨论的好详细   受教了!!!!!!
回复 使用道具 举报
表示也犯过这样的错!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马