黑马程序员技术交流社区

标题: switch语句的基础面试题 [打印本页]

作者: 小鱼儿211    时间: 2015-10-14 08:25
标题: switch语句的基础面试题
1. class Test {
        public static void main(String[] args) {
                int x = 3;
                int y = 5;
                switch (x) {
                        default;
                        y++;
                        break;
                case 4:
                        y++;
                case 5;
                        y++;
                }
                System.out.println("y =" + y);
        }
}
2.class Test {
        public static void main(String[] args) {
                int x = 3;
                int y =5;
                switch (x) {
                        default;
                        y++;
                case 4:
                        y++;
                case 5;
                        y++;
                }
                System.out.println("y =" + y);
        }
}
为什么输出结果y的值不一样?
作者: heshiwei    时间: 2015-10-14 09:25
有break和没break的区别,有则执行到break跳出整个switch,没有则一直会执行下面的case直到遇到break
作者: ln0491    时间: 2015-10-14 09:28
本帖最后由 ln0491 于 2015-10-14 09:30 编辑

6,8。。。。。。。。。
作者: zhy阿狸    时间: 2015-10-14 09:51
第一个执行default后y+1之后break跳出整个循环输出6,。第二个没有break需要执行所以语句。y+1三次就是8了
作者: shoresmile    时间: 2015-10-14 10:07
第一个执行default后y+1之后break跳出整个循环输出6,。第二个没有break需要执行所以语句。y+1三次就是8了




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