黑马程序员技术交流社区

标题: switch语句 [打印本页]

作者: 杨森的安卓路    时间: 2016-11-21 20:05
标题: switch语句
class lianxi {
        public static void main(String[] args) {
                int x = 2,y=3;

                switch(x)
                {
                        default:
                                y++;
                        case 3:
                                y++;
                               
                        case 4:
                                y++;
                }

                System.out.println("y="+y);
        }
}
这个输出怎么是6,请大神指点一下
作者: zf2501    时间: 2016-11-21 20:21
本帖最后由 zf2501 于 2016-11-21 20:22 编辑

因为你没有break; 所以当x进入switch语句时,先匹配case值,没有满足的,执行default 中的y++//此时y = 4 ;然后继续执行 case3 里面的 y++ ;

最后执行 case4 里面的 y++;
所以输出为6 ;

作者: 杨森的安卓路    时间: 2016-11-21 21:00
zf2501 发表于 2016-11-21 20:21
因为你没有break; 所以当x进入switch语句时,先匹配case值,没有满足的,执行default 中的y++//此时y = 4 ;然 ...

执行完default后,就会顺序执行,没有遇到break,也会忽略掉case3,case4,只是顺序执行运算,是不是

作者: zf2501    时间: 2016-11-21 21:09
杨森的安卓路 发表于 2016-11-21 21:00
执行完default后,就会顺序执行,没有遇到break,也会忽略掉case3,case4,只是顺序执行运算,是不是
...

嗯嗯,就是那样的

作者: 杨森的安卓路    时间: 2016-11-21 21:14
zf2501 发表于 2016-11-21 21:09
嗯嗯,就是那样的

谢谢哈

作者: zf2501    时间: 2016-11-21 21:17
杨森的安卓路 发表于 2016-11-21 21:14
谢谢哈

客气客气,多练习,自然就知道怎么回事了

作者: 苏大叔丶    时间: 2016-11-22 12:49
其实就是case穿透问题





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