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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Demo12//定义一个类
{
        //主函数
        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);
        }       
}

原因:当运行show(0)的时候,case之间与default没有顺序,先执行第一个case,没有匹配的case就执行了default,执行default之后发现没有对应的break,程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束(一般语句结束要么是遇到分号,要么是遇到大括号。)

        当运行show(1)时,有匹配的case,就不执行default.但是匹配的case却没有对应的break,那么程序会继续向下执行,运行可以执行的语句,这时就不在判断case了,直到遇到break或者switch结尾结束。


最后的结果:show(0)=15; show(1)=14;

   这只是抛砖引玉,希望大家都可以多多的学习!

2 个回复

正序浏览
几天前才看视频内容的就忘了,唉,学习了
回复 使用道具 举报
占楼备用,大家有什么经典的题型或好的思路都分享一下,知识越分享越快乐,虽然我很菜,但这又有什么关系?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马