switch-case 语句的优点和几点注意事项 Java

java语言的三种基本结构——顺序、选择、循环。

switch-case是选择结构的重要实现方式。因为虽然实际上switch-case的功能完全可以用if-else代替,但有时用switch-case确实是一种更优雅的实现方式。

 

比如由一个变量判断星期几,考虑以下代码:

使用if-else的效果:

        if(day ==1){
            System.out.println("星期一");
        }else if(day ==2){
            System.out.println("星期二");
        }else if(day ==3){
            System.out.println("星期三");
        }else if(day ==4){
            System.out.println("星期四");
        }else if(day ==5){
            System.out.println("星期五");
        }else if(day ==6){
            System.out.println("星期六");
        }else if(day ==7){
            System.out.println("星期日");
        }else{} 

使用switch-case会显得优雅的多:

        switch(day){
            case 1:System.out.println("星期一");break;
            case 2:System.out.println("星期二");break;
            case 3:System.out.println("星期三");break;
            case 4:System.out.println("星期四");break;
            case 5:System.out.println("星期五");break;
            case 6:System.out.println("星期六");break;
            case 7:System.out.println("星期日");break;
            default:
        }  

尤其是遇到类似这样的情况,更显其优雅——可读性强、易于维护:

        switch(day){
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:System.out.println("工作日");break;
            case 6:
            case 7:System.out.println("双休日");break;
            default:
        }

要注意的一些情况:

1.  switch的break语句是可选的,有时我们会利用这种特性(如上面的代码),但是一般情况下break是不能少的。否则可能会出现意料之外的错误。——没有break,程序会继续执行后面的代码。

2.  default语句也是可选的。相当于对应if-else语句最后的else。

3.  java语言用于匹配的选择因子必须是整形或字符型常量。这很重要。

4.  switch语句的比较是从上往下,所以把匹配概率大的选择因子放在前面可以提高效率。

5.  选择因子具有唯一性,即不能有2个相同的因子存在。

 

暂时想到这么多,以后想到了再添加吧!

你可能感兴趣的:(Java)