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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小超超 中级黑马   /  2016-8-25 11:00  /  646 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Demo {
        public static void main(String[] args) {
               int x = 2,y=3;

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

        System.out.println("y="+y);
}
}

输出是什么?怎么解释?不胜感激。

7 个回复

倒序浏览
变量x在这个选择语句中起了什么作用?如果switch语句中的变量是y的话,输出语句我认为以后输不出来。我也是新人,仅仅作为自己的愚见吧。
回复 使用道具 举报
x=2 匹配不了case语句,只能执行default y++  答案是4
回复 使用道具 举报
y=5          先判断x,没有的话再执行default,default放在了首行,执行完y++,没有break跳出,继续往下执行case3里的y++,有break就跳出了不再往下执行
回复 使用道具 举报
结果是5 ,default后面没有break跳出,所以继续执行 default后面的case语句,两次++ ,所以结果5. 同学你感觉呢
回复 使用道具 举报
如上所说。确实是y=5,先执行一次default是+了一次,然后又case+了一次,
回复 使用道具 举报
输出答案y=5,因为x的值与case后面的数值进行比较,都不相等,最后走defalt,执行y++,y变成4,没有遇到break,继续向下执行,执行case3的y++后,y的值为5,遇到break,跳出循环
回复 使用道具 举报
y=5,要注意这程序的break是否存在
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马