黑马程序员技术交流社区

标题: switch语句的代码没有break怎么理解? [打印本页]

作者: 不想飞不到    时间: 2014-8-5 23:31
标题: switch语句的代码没有break怎么理解?
本帖最后由 不想飞不到 于 2014-8-5 23:47 编辑

class Demo
{
        public static void main(String[] args)
        {
                show(0);//15
                show(1);//14
        }        
        public static void show(int i)
        {
                switch(i)
                {        
                        default:
                                i+=2;
                        case 1:
                                i+=1;
                        case 4:
                                i+=8;                        
                        case 2:
                                i+=4;
                }
                System.out.println("i="+i);
        }        
}

答案:15,14

求详细流程
作者: jerom023    时间: 2014-8-5 23:40
等于15的那个:先执行default,然后挨个执行case
等于14的那个:先执行case 1,然后case 4和2
作者: 不想飞不到    时间: 2014-8-5 23:49
jerom023 发表于 2014-8-5 23:40
等于15的那个:先执行default,然后挨个执行case
等于14的那个:先执行case 1,然后case 4和2 ...

突然想起来,没有break就从入口往下执行
作者: hzl_0911    时间: 2014-8-6 01:57
break是switch退出命令,如果没有break,程序会执行所有case语句,所以一般会加break.
作者: huanglyhf    时间: 2014-8-6 10:34
没break ,选中的那项读完之后会一直乡向下读
作者: li963309584    时间: 2014-8-6 11:20
switch里边的case如果没有匹配就执行default,有匹配的执行匹配的,如果后边不加break的话,执行完匹配的case后,接着向后执行,直到遇到break或者下面case都执行完
作者: dingpanbo    时间: 2014-8-6 13:26
得遇到break语句,或者整个语句末尾,才会结束
作者: 晋一峰    时间: 2014-8-6 13:41
没有break将   进行case穿透  直到遇到break或者swich语句结束。 0   从  default往下依次走   , 1从case1 往下依次走 自己加一下吧




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