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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© hamesksk 中级黑马   /  2015-3-17 09:46  /  1966 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. int x = 2;
  2.                 switch (x) {
  3.                 case 1:
  4.                         System.out.println(1);
  5.                 case 2:
  6.                 case 3:
  7.                         System.out.println(3);
  8.                 case 4:
  9.                         System.out.println(4);
  10.                 }
复制代码
自己找了题做,这题居然做错了,也来考考同学们!

评分

参与人数 1技术分 +1 收起 理由
艺多不压身丶 + 1 赞一个!

查看全部评分

10 个回复

倒序浏览
case穿透,结果是34

点评

版主能具体解释下吗?有点不明白。谢谢版主了  发表于 2015-3-17 10:32
嗯,版主就是牛,基础知识好扎实!  发表于 2015-3-17 10:05
回复 使用道具 举报
额,楼主能解释下为什么吗?谢了

点评

具体原因,我说不上来,楼上的解释很好,case穿透,如果不遇到break,根本停不下来,会一直执行下去,所以switch一定要加上break,我也遇到这个题就答错  发表于 2015-3-17 10:24
回复 使用道具 举报
恩,不停下来是,但是为什么会打印34呢,打印3还想的懂,但是4是为什么
回复 使用道具 举报
因为没有break,所以会打印34
回复 使用道具 举报
                        switch(表达式)
                        case 常亮表达式:
                                语句1
                        case 常量表达式:
                                语句2
                                break;
case 就好像if else一样。但是他们也是有区别的。
break是用于循环内跳出循环用的,case判断条件
条件满足就会执行语句体,在接着break跳出。
当然break也可以省略,但是会出现case穿透现象。
如果case后面没有break的话他会一直往下执行,直到执行到break为止。

我是这么理解的。就是一个case对应一个break,如果第一个case没有读到break的话继续往下执行。但是不会判断下面的case而是直接执行语句,直到读到break为止。
回复 使用道具 举报
殷俊 发表于 2015-3-17 10:31
恩,不停下来是,但是为什么会打印34呢,打印3还想的懂,但是4是为什么

switch(表达式)
                        case 常亮表达式:
                                语句1
                        case 常量表达式:
                                语句2
                                break;
case 就好像if else一样。但是他们也是有区别的。
break是用于循环内跳出循环用的,case判断条件
条件满足就会执行语句体,在接着break跳出。
当然break也可以省略,但是会出现case穿透现象。
如果case后面没有break的话他会一直往下执行,直到执行到break为止。

我是这么理解的。就是一个case对应一个break,如果第一个case没有读到break的话继续往下执行。但是不会判断下面的case而是直接执行语句,直到读到break为止。
回复 使用道具 举报
殷俊 高级黑马 2015-3-17 11:06:19
8#
艺多不压身丶 发表于 2015-3-17 10:58
switch(表达式)
                        case 常亮表达式:
                                语句1

哦哦,差不多懂了,谢谢版主:handshake
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马