【Java基础面试题】 switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String上?

在 Java 中,switch 语句的作用对象可以是 byteshortcharint、枚举(Java 5及以上版本)、String(Java 7及以上版本)、Integer(Java 7及以上版本)、Enum(Java 7及以上版本)。具体来说:

  1. byte 和 short
    switch 语句可以作用在 byteshort 数据类型上,因为它们可以隐式地转换为 int,换句话就是byte 和 short 类型的取值范围都可以被 int 类型完全覆盖。byte 的取值范围是 -128 到 127,在转换为 int 类型时不会导致精度损失或溢出。例如:

    byte b = 1;
    switch (b) {
        case 1:
            // case 1 的处理逻辑
            break;
        default:
            // 默认处理逻辑
            break;
    }
    
  2. int 和 char
    switch 最常见的用法是作用在 intchar 上,这两种数据类型直接支持。

  3. String
    从 Java 7 开始,switch 语句可以作用在 String 类型上。例如:

    String str = "hello";
    switch (str) {
        case "hello":
            // case "hello" 的处理逻辑
            break;
        default:
            // 默认处理逻辑
            break;
    }
    
  4. long 和其他类型
    long 类型不能直接用于 switch 语句,因为它不能隐式转换为 int。因为 long 类型的值在Java中是64位的,它的取值范围更大,不像 int 那样可以被编译器在常量表达式中使用。如果需要在 long 或其他类型上进行条件分支判断,可以考虑使用 if-else if-else 结构来代替 switch 语句。

总结来说,switch 语句在 Java 中可以作用在 byteshortcharintString(Java 7及以上版本)以及枚举类型上。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值