黑马程序员技术交流社区

标题: 复习swicth语句时遇到一个问题 [打印本页]

作者: jinxiaodong    时间: 2016-1-3 19:58
标题: 复习swicth语句时遇到一个问题
  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的时候运行结果应该为一样的丫。
求大神们赐教。
作者: z.qi    时间: 2016-1-3 20:21
case穿透问题,每条case语句没加break
x=3的时候, 不光执行了case3,还有case4
x=4的时候, 执行case4,然后到末尾程序结束.


作者: luyang18    时间: 2016-1-3 21:54
2楼讲解得很详细
作者: jinxiaodong    时间: 2016-1-4 08:04
z.qi 发表于 2016-1-3 20:21
case穿透问题,每条case语句没加break
x=3的时候, 不光执行了case3,还有case4
x=4的时候, 执行case4,然后到 ...

明白了,谢谢解答{:3_51:}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2