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

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 ");

        }
        ...

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值