8.5 switch...case语句注意问题

来源:互联网 发布:2016淘宝如何打造爆款 编辑:程序博客网 时间:2024/06/10 10:09

switch中的值类型

  • byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串类型了。

  • 切记 long 类型和Boolean类型是不行的。

    eg:

         ...         long  long1 = 1L;        switch(long1){// C        case 1 : System.out.println(" 11 "); break;        case 2 : System.out.println(" 1132 "); break;// D        }        ...

以上的例子是错误的,因为switch中是指不能是long 类型,会报错。

case值要是常量

eg.

        ...        int num = 11;        byte a = 11;        switch(a){// C        case num : System.out.println(" 11 "); break;        case 22 : System.out.println(" 22 "); break;        default:        }        ...

以上代码是错误的, 因为num还不是常量。解决办法:
将变量声明为final即可。即

    final int num = 11;

switch与case的值要对应

eg:

            ...        byte a = 12;        switch(a){// C        case 11 : System.out.println(" 11 "); break;        case 223 : System.out.println(" 1132 "); break;// D        }        ...

以上的程序也是错误的,因为case的值为223时,超过了byte的最大值;还有,当case中出现俩个值一样时,也是会报错。

忘记写break语句

eg.

        ...        byte a = 11;        switch(a){// C        case 11 : System.out.println(" 11 "); ;        case 22 : System.out.println(" 22 "); ;// D        }        ...

以上的代码,会输出 11,12。原因在于没有写break语句。

default语句

一般地,我们都要在结束时加上default语句。

eg.

        ...        byte a = 11;        switch(a){// C        case 11 : System.out.println(" 11 "); break;        case 22 : System.out.println(" 22 "); break;        default:System.out.println(" default ");        }        ...

暂时就这些了,都是细节啊。


原创粉丝点击