黑马程序员技术交流社区

标题: switch语句特点,不编译,你可以一眼看出结果吗? [打印本页]

作者: 2119391569    时间: 2015-5-2 10:22
标题: switch语句特点,不编译,你可以一眼看出结果吗?
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;

   这只是抛砖引玉,希望大家都可以多多的学习!
作者: 2119391569    时间: 2015-5-2 10:26
占楼备用,大家有什么经典的题型或好的思路都分享一下,知识越分享越快乐,虽然我很菜,但这又有什么关系?
作者: 一只玉米    时间: 2015-5-2 11:57
几天前才看视频内容的就忘了,唉,学习了




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