黑马程序员技术交流社区

标题: 关于switch语句问题? [打印本页]

作者: 小超超    时间: 2016-8-25 11:00
标题: 关于switch语句问题?
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);
}
}

输出是什么?怎么解释?不胜感激。
作者: cdw999888    时间: 2016-8-25 12:23
变量x在这个选择语句中起了什么作用?如果switch语句中的变量是y的话,输出语句我认为以后输不出来。我也是新人,仅仅作为自己的愚见吧。
作者: yuanxianzhi    时间: 2016-8-25 12:46
x=2 匹配不了case语句,只能执行default y++  答案是4
作者: cuiyue018    时间: 2016-8-25 13:08
y=5          先判断x,没有的话再执行default,default放在了首行,执行完y++,没有break跳出,继续往下执行case3里的y++,有break就跳出了不再往下执行
作者: 细听风语为梧桐    时间: 2016-8-25 17:09
结果是5 ,default后面没有break跳出,所以继续执行 default后面的case语句,两次++ ,所以结果5. 同学你感觉呢
作者: 醉梦乘风    时间: 2016-8-25 19:12
如上所说。确实是y=5,先执行一次default是+了一次,然后又case+了一次,
作者: 小胖妞    时间: 2016-8-25 19:19
输出答案y=5,因为x的值与case后面的数值进行比较,都不相等,最后走defalt,执行y++,y变成4,没有遇到break,继续向下执行,执行case3的y++后,y的值为5,遇到break,跳出循环
作者: lrwillinggerry    时间: 2016-8-26 00:08
y=5,要注意这程序的break是否存在




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