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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小鱼儿211 中级黑马   /  2015-10-14 08:25  /  258 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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的值不一样?

4 个回复

倒序浏览
有break和没break的区别,有则执行到break跳出整个switch,没有则一直会执行下面的case直到遇到break
回复 使用道具 举报
本帖最后由 ln0491 于 2015-10-14 09:30 编辑

6,8。。。。。。。。。
回复 使用道具 举报
第一个执行default后y+1之后break跳出整个循环输出6,。第二个没有break需要执行所以语句。y+1三次就是8了
回复 使用道具 举报
第一个执行default后y+1之后break跳出整个循环输出6,。第二个没有break需要执行所以语句。y+1三次就是8了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马