首页 > 试题广场 >

下列不能做switch()的参数类型是?

[单选题]
在java7中,下列不能做switch()的参数类型是?
  • int型
  • 枚举类型
  • 字符串
  • 浮点型
推荐
D
switch语句后的控制表达式只能是short、char、int、long整数类型和枚举类型,不能是float,double和boolean类型。String类型是java7开始支持。
编辑于 2015-01-12 10:27:46 回复(30)
switch支持 int及以下(char, short, byte),String, Enum
发表于 2015-11-13 10:53:48 回复(8)
在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也是可以的。显然,long、float、double类型不符合switch的语法规定,并且不能被隐式转换成int类型,所以,它们不能作用于swtich语句中。
注意:String类型是Java7开始支持的。
发表于 2015-08-11 08:59:48 回复(3)
本人eclipse测试过,switch支持:①支持小于等于int的类型譬如(byte,short,char,int),不支持八大基础数据类型中的boolean,long,float,double②支持枚举类型③支持String类型(java7开始支持)
发表于 2017-08-14 21:15:38 回复(0)
switch支持byte、short、char、int、String(jdk1.7)、Enum
发表于 2018-09-02 08:33:20 回复(2)
在JDK1.5之前,switch循环只支持byte short char int四种数据类型.

JDK1.5 在switch循环中增加了枚举类与byte short char int的包装类,对四个包装类的支持是因为java编译器在底层手动进行拆箱,而对枚举类的支持是因为枚举类有一个ordinal方法,该方法实际上是一个int类型的数值.

jdk1.7开始支持String类型,但实际上String类型有一个hashCode算法,结果也是int类型.而byte short char类型可以在不损失精度的情况下向上转型成int类型.所以总的来说,可以认为switch中只支持int.
发表于 2019-11-13 21:06:46 回复(0)
除了整型,枚举类型,字符型,其他的都不行。譬如:字符串,浮点型这些都不可以作为switch的参数类型。
发表于 2014-10-25 00:25:58 回复(1)
C是可以的  从Java7开始 switch可以是string类型
发表于 2015-05-11 19:03:53 回复(2)
jdk1.7 以后含1.7 ,有 int byte char short及其包装类型 和 enum类型, String类型是在 1.7 新增的
发表于 2017-06-06 23:33:21 回复(0)
说个拓展小知识,switch实际上只支持整型,string在switch底层其实是调用了hashcode方法来获得整型来判断的,enum是调用是序号方法获得的整型,所以如果传一个null字符串进switch会报空指针异常
发表于 2021-10-06 16:00:56 回复(0)
答案:D switch支持的数据类型有byte,short,int,char,枚举,在JDK1.7支持String类型。 这里的整型很容易让我们误以为包括字节(byte),短整型(short),整型(int),长整型(long)。这里指的是整型int。
发表于 2017-08-28 15:12:43 回复(1)
表达式可以是整型、字符型以及枚举类型等表达式敏感词的都不行
发表于 2014-11-02 15:16:01 回复(0)
switch语句后的控制表达式只能是short、char、int、long整数类型和枚举类型,不能是float,double和boolean类型。String类型是java7开始支持。
发表于 2021-09-30 12:32:51 回复(1)
Java5 以前 switch(expr)中,expr 只能是 byte、short、char、int。

 从 Java 5 开始,Java 中引入了枚举类型, expr 也可以是 enum 类型。 

从 Java 7 开始,expr还可以是字符串(String),但是长整型(long)在目前所有的版本中都是不可以的。
发表于 2021-06-30 21:05:17 回复(0)
switch语句后的控制表达式只能是short、char、int、long整数类型和枚举类型,不能是float,double和boolean类型。String类型是java7开始支持。
发表于 2021-06-01 15:36:48 回复(0)
到底支持long 否?
发表于 2020-12-17 09:01:28 回复(1)
switch() 括号里面的参数,在jdk1.5之前只支持char,int,short,byte,1.5之后增加了枚举类型和byte,short,char,int这些的包装类,1.7之后支持String类型,因为String类型有一个hashcode算法,也是int类型,所以总的来说,可以认为switch只支持int类型数据
发表于 2020-11-28 11:33:03 回复(0)
switch语句后的控制表达式只能是short、char、int、long整数类型和枚举类型,不能是float,double和boolean类型。String类型是java7开始支持。 
发表于 2019-04-09 19:50:24 回复(0)
switch支持:①支持小于等于int的类型譬如(byte,short,char,int),不支持八大基础数据类型中的boolean,long,float,double②支持枚举类型③支持String类型(java7开始支持)
发表于 2019-03-13 18:32:02 回复(0)
switch语句后的控制表达式只能是short、char、int、long整数类型和枚举类型,不能是float,double和boolean类型。而在java7的时候,也支持String类型
发表于 2018-10-26 20:34:50 回复(0)
我想说的是支持字符字面值,不是简单说String
发表于 2017-05-05 14:21:02 回复(0)