JAVA中switch能否用在byte上?能否用在long上?能否用在string上?

不知道你所说的表达式是什么意思。你可以声明一个Long型变量并初始化。如:
Long i;或Long i = 10L;
至于在switch语句中为什么不能使用Long型变量,java中有这样的规定,switch中的参数只能是离散变量或枚举类型。
离散变量包括:byte;int;short;char;枚举类型则需要自己定义,例如
public enum{first,second,third};
追问:

呃    是“能否作用在”上面三个类型上,指出原因。。。不好意思,有点晕。。

回答:

Java代码
public class MathTest {   
    // 枚举类型,Java5.0以上版本可用   
    static enum enum_e {   
        A, B   
    }   
  
    public static void main(String[] args) {   
        // byte   
        byte byte_n = 0;   
        switch (byte_n) {   
        case 0:   
            System.out.println("byte可以用于switch语句");   
            break;   
        }   
  
        // Byte类   
        Byte byte_m = 0;   
        // 需要Java5.0(1.5)以上版本支持   
        switch (byte_m) {   
        case 0:   
            System.out.println("Byte类可以用于switch语句");   
            System.out.println();   
            break;   
        }   
  
        // char   
        char char_n = 0;   
        switch (char_n) {   
        case 0:   
            System.out.println("char可以用于switch语句");   
            break;   
        }   
  
        // Character类   
        Character char_m = 0;   
        // 需要Java5.0(1.5)以上版本支持   
        switch (char_m) {   
        case 0:   
            System.out.println("Character类可以用于switch语句");   
            System.out.println();   
            break;   
        }   
  
        // short   
        short short_n = 0;   
        switch (short_n) {   
        case 0:   
            System.out.println("short可以用于switch语句");   
            break;   
        }   
  
        // Short   
        Short short_m = 0;   
        // 需要Java5.0(1.5)以上版本支持   
        switch (short_m) {   
        case 0:   
            System.out.println("Short类可以用于switch语句");   
            System.out.println();   
            break;   
        }   
  
        // int   
        int int_n = 0;   
        switch (int_n) {   
        case 0:   
            System.out.println("int可以用于switch语句");   
            break;   
        }   
  
        // Integer类   
        Integer int_m = 0;   
        // 需要Java5.0(1.5)以上版本支持   
        switch (int_m) {   
        case 0:   
            System.out.println("Integer类可以用于switch语句");   
            System.out.println();   
            break;   
        }   
  
        // long   
        long long_n = 0;   
        // 编译错误,long型不能用于switch语句   
        // switch (long_n) {   
        // case 0:   
        // System.out.println("long可以用于switch语句");   
        // break;   
        // }   
  
        // Long类   
        Long long_m = 0L;   
        // 编译错误,Long类型不能用于switch语句   
        // switch (long_m) {   
        // case 0:   
        // System.out.println("Long类可以用于switch语句");   
        // System.out.println();   
        // break;   
        // }   
  
        // float   
        float float_n = 0.0F;   
        // 编译错误,float型不能用于switch语句   
        // switch (float_n) {   
        // case 0.0F:   
        // System.out.println("float可以用于switch语句");   
        // break;   
        // }   
  
        // Float类   
        Float float_m = 0.0F;   
        // 编译错误,Float类型不能用于switch语句   
        // switch (float_m) {   
        // case 0.0F:   
        // System.out.println("Float类可以用于switch语句");   
        // System.out.println();   
        // break;   
        // }   
  
        // double   
        double double_n = 0.0;   
        // 编译错误,double型不能用于switch语句   
        // switch (double_n) {   
        // case 0.0:   
        // System.out.println("double可以用于switch语句");   
        // break;   
        // }   
  
        // Double类   
        Double double_m = 0.0;   
        // 编译错误,Double类型不能用于switch语句   
        // switch (double_m) {   
        // case 0.0:   
        // System.out.println("Double类可以用于switch语句");   
        // System.out.println();   
        // break;   
        // }   
  
        // boolean   
        boolean bool_b = true;   
        // 编译错误,boolean型不能用于switch语句   
        // switch (bool_b) {   
        // case true:   
        // System.out.println("boolean可以用于switch语句");   
        // break;   
        // }   
  
        // Boolean类   
        Boolean bool_l = true;   
        // 编译错误,Boolean类型不能用于switch语句   
        // switch (bool_l) {   
        // case true:   
        // System.out.println("Boolean类可以用于switch语句");   
        // System.out.println();   
        // break;   
        // }   
  
        // String对象   
        String string_s = "Z";   
        // 编译错误,long型不能用于switch语句   
        // switch (string_s) {   
        // case "Z":   
        // System.out.println("String可以用于switch语句");   
        // System.out.println();   
        // break;   
        // }   
  
        // enum(枚举类型,Java5.0以上版本可用)   
        switch (MathTest.enum_e.A) {   
        case A:   
            System.out.println("enum可以用于switch语句-A");   
            break;   
        case B:   
            System.out.println("enum可以用于switch语句-B");   
            break;   
        }   
    }   
}  

运行结果如下:

1、byte可以用于switch语句
2、Byte类可以用于switch语句
3、
4、char可以用于switch语句
5、Character类可以用于switch语句
6、
7、short可以用于switch语句
8、Short类可以用于switch语句
9、
10、int可以用于switch语句
11、Integer类可以用于switch语句
12、
13、enum可以用于switch语句-A

结果已经出来了,我们来总结一下:

1、byte、char、short、int四种基本类型以及它们的包装类(需要Java5.0/1.5以上版本支持)都可以用于switch语句。
2、long、float、double、boolean四种基本类型以及它们的包装类(在Java所有版本中)都不能用于switch语句。
3、enum类型,即枚举类型可以用于switch语句,但是要在Java5.0(1.5)版本以上才支持。
4、所有类型的对象(包括String类,但在Java5.0/1.5以上版本中,该项要排除byte、char、short、int四种基本类型对应的包装类)都不能用于switch语句。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值