Java switch细节

1、语法:

switch(表达式){ 
    case 常量1 : 
        //语句 
        break; //可选 
    case 常量2 : 
        //语句 
        break; //可选 
    //可以有任意数量的case语句 
    default : //可选 
        //语句 
}

2、表达式的值和常量的值必须一致,或者说表达式的值和常量的值可以转换,比如表达式为char,常量为int。否则就会编译错误。

3、表达式返回的值必须是byte、short、int、char、enum、String中之一。

    以java8为准,switch支持10种类型 

        1、基本类型:byte char short int 对于包装类 :Byte,Short,Character,Integer String enum 

        2、实际只支持int类型 Java实际只能支持int类型的switch语句,那其他的类型时如何支持的

            a、基本类型byte char short 原因:这些基本数字类型可自动向上转为int, 实际还是用的int。 

            b、基本类型包装类Byte,Short,Character,Integer 原因:java的自动拆箱机制 可看这些对象自动转为基本类型 

            c、String 类型 原因:实际switch比较的string.hashCode值,它是一个int类型 如何实现的,网上例子很多。 

            d、enum类型 原因 :实际比较的是enum的ordinal值(表示枚举值的顺序),它也是一个int类型 所以也可以说 switch语句只支持int类型

//例如double就是错误的。
double d = 1.1;
switch(d){
    case 1.1:
        break;
    case 2.1:
        break;
    default:
        break;
}
//编译不通过,原因为double类型转化为int会有损失,在switch(d){这一行就会报错。

4、case子句中的值必须是常量,而不能是变量。

5、default子句可选。

6、case语句中break语句用来跳出,不写的话会依次向后执行,就失去了意义。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值