日期:2014-05-20  浏览次数:20652 次

java中switch语句可以这样写吗??求解释

Java code
    
    public static void main(String[] args)
    {
        int num = 1;
        switch (num)
        {
            case 0: a: b: c: abc: def: d: e: f: abcdef: System.out.println(1);
                break;
            default:
                System.out.println(2);
                break;
        }

    }



这case后面这样写都不会报错,
num=0也能进去,打印1;
num=2的时候打印2;
num=97的时候也是打印2;

java中switch语句可以这样写吗??求大虾们帮忙解释。


------解决方案--------------------
标签吧。
IDE应该会提示你增加unused了吧。
结合break或者continue之后的功能类似goto了。
个人猜测。。。
一般都出现在循环里的。switch里这么写没什么意义吧。
------解决方案--------------------

这个跟switch无关,a: b: c: abc: def: d: e: f: abcdef:是语句的标签,定义了用来给带标签的break或continue语句控制程序流程用的。
任何一条语句之前都可以加标签形如 xxxx:
a: b: c: abc: def: d: e: f: abcdef:不过是个嵌套的标签而已。
那句case可以这么理解:
Java code

            case 0: 
a: b: c: abc: def: d: e: f: abcdef: System.out.println(1);
                break;

------解决方案--------------------
3楼大神正解!!!!!