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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. public static void main(String[] args){
  2.                 int x = 3;
  3.                 int y = 3;
  4.                 switch(x){
  5.                     default:
  6.                         y++;
  7.                         break;
  8.                     case 3:
  9.                         y++;
  10.                     case 4:
  11.                         y++;
  12.                 }
  13.                 System.out.println("y="+y);
  14.         }
  15. }
复制代码


代码如上,当int x = 3时,运行结果为y=5。
当把int x = 3换为int x = 4时,我认为运行结果为y=5,可实际运行结果却为y=4。
为什么会出现这种结果呢
x值为3,或者4的时候运行结果应该为一样的丫。
求大神们赐教。

3 个回复

正序浏览
z.qi 发表于 2016-1-3 20:21
case穿透问题,每条case语句没加break
x=3的时候, 不光执行了case3,还有case4
x=4的时候, 执行case4,然后到 ...

明白了,谢谢解答{:3_51:}
回复 使用道具 举报
2楼讲解得很详细
回复 使用道具 举报
case穿透问题,每条case语句没加break
x=3的时候, 不光执行了case3,还有case4
x=4的时候, 执行case4,然后到末尾程序结束.

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马