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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 不想飞不到 于 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

求详细流程

评分

参与人数 1技术分 +1 收起 理由
格子、 + 1 淡定

查看全部评分

7 个回复

正序浏览
没有break将   进行case穿透  直到遇到break或者swich语句结束。 0   从  default往下依次走   , 1从case1 往下依次走 自己加一下吧
回复 使用道具 举报
得遇到break语句,或者整个语句末尾,才会结束
回复 使用道具 举报
switch里边的case如果没有匹配就执行default,有匹配的执行匹配的,如果后边不加break的话,执行完匹配的case后,接着向后执行,直到遇到break或者下面case都执行完
回复 使用道具 举报
没break ,选中的那项读完之后会一直乡向下读
回复 使用道具 举报
break是switch退出命令,如果没有break,程序会执行所有case语句,所以一般会加break.
回复 使用道具 举报
jerom023 发表于 2014-8-5 23:40
等于15的那个:先执行default,然后挨个执行case
等于14的那个:先执行case 1,然后case 4和2 ...

突然想起来,没有break就从入口往下执行
回复 使用道具 举报
等于15的那个:先执行default,然后挨个执行case
等于14的那个:先执行case 1,然后case 4和2
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马