Java的switch语句支持byte、short、char、int、long、String和enum(枚举)吗?

时间:2022-05-02 03:38:29
Java的switch语句支持byte、short、char、int和enum(枚举)这是公认的
但支持long、String和吗?

18 个解决方案

#1


少年 打开你的eclipse 写个switch case.最方便了 不用问人,还印象深刻。这跟JDK版本也有关系的

#2


引用 1 楼  的回复:
少年 打开你的eclipse 写个switch case.最方便了 不用问人,还印象深刻。这跟JDK版本也有关系的


我试过了,书上说long是可以的,但在程序中不允许

#3


switch表达式的值只能为int、byte、short、或char,不允许为long或double等长整型值,也不允许为String   

#4


不可以为实数,如case 1.1
不可以为字符串, 如case "OK"
可以为整数和字符,具体自己写代码编译下就行了。

这种问题其实不是问题,没必要拿出来问。

#5


Java 6 及之前不行,

Java 7 以后可以。

#6


long是不支持的
jdk1.7开始支持String

#7


jdk1.7支持string了 但是long支持与否我也没试过,现在动手试试!

#8


引用 4 楼  的回复:
不可以为实数,如case 1.1
不可以为字符串, 如case "OK"
可以为整数和字符,具体自己写代码编译下就行了。

这种问题其实不是问题,没必要拿出来问。

public class  Switch
{
public static void main(String[] args) 
{
String s="OK";
switch(s){
case "OP":
System.out.println("OP");
break;
case "OK":
System.out.println("OK");
break;
default:
System.out.println("没匹配");
break;

}

}
}
程序运行结果:
OK
请按任意键继续. . .

看来你得回去看看书了

#9


JDK1.7以前switch表达式的值只能为int、byte、short、或char,不允许为long或double等长整型值,也不允许为String,JDK1.7支持String类型的了
 

#10


学习了,之前一直不知道呢。。。

#11


引用 4 楼  的回复:
不可以为实数,如case 1.1
不可以为字符串, 如case "OK"
可以为整数和字符,具体自己写代码编译下就行了。

这种问题其实不是问题,没必要拿出来问。

我们学的和这位说的是一样的哦!!

#12


引用 6 楼  的回复:
long是不支持的
jdk1.7开始支持String

#13


引用 7 楼  的回复:
jdk1.7支持string了 但是long支持与否我也没试过,现在动手试试!

有用 。。
学习了。。

#14


该回复于2012-08-03 09:58:50被版主删除

#15


该回复于2012-08-03 14:40:40被版主删除

#16


switch...case 是面向过程的语法,在面向对象语言中应尽量少地使用

#17


引用 6 楼  的回复:
long是不支持的
jdk1.7开始支持String

已验证

#18


该回复于2012-08-04 17:04:39被版主删除

#1


少年 打开你的eclipse 写个switch case.最方便了 不用问人,还印象深刻。这跟JDK版本也有关系的

#2


引用 1 楼  的回复:
少年 打开你的eclipse 写个switch case.最方便了 不用问人,还印象深刻。这跟JDK版本也有关系的


我试过了,书上说long是可以的,但在程序中不允许

#3


switch表达式的值只能为int、byte、short、或char,不允许为long或double等长整型值,也不允许为String   

#4


不可以为实数,如case 1.1
不可以为字符串, 如case "OK"
可以为整数和字符,具体自己写代码编译下就行了。

这种问题其实不是问题,没必要拿出来问。

#5


Java 6 及之前不行,

Java 7 以后可以。

#6


long是不支持的
jdk1.7开始支持String

#7


jdk1.7支持string了 但是long支持与否我也没试过,现在动手试试!

#8


引用 4 楼  的回复:
不可以为实数,如case 1.1
不可以为字符串, 如case "OK"
可以为整数和字符,具体自己写代码编译下就行了。

这种问题其实不是问题,没必要拿出来问。

public class  Switch
{
public static void main(String[] args) 
{
String s="OK";
switch(s){
case "OP":
System.out.println("OP");
break;
case "OK":
System.out.println("OK");
break;
default:
System.out.println("没匹配");
break;

}

}
}
程序运行结果:
OK
请按任意键继续. . .

看来你得回去看看书了

#9


JDK1.7以前switch表达式的值只能为int、byte、short、或char,不允许为long或double等长整型值,也不允许为String,JDK1.7支持String类型的了
 

#10


学习了,之前一直不知道呢。。。

#11


引用 4 楼  的回复:
不可以为实数,如case 1.1
不可以为字符串, 如case "OK"
可以为整数和字符,具体自己写代码编译下就行了。

这种问题其实不是问题,没必要拿出来问。

我们学的和这位说的是一样的哦!!

#12


引用 6 楼  的回复:
long是不支持的
jdk1.7开始支持String

#13


引用 7 楼  的回复:
jdk1.7支持string了 但是long支持与否我也没试过,现在动手试试!

有用 。。
学习了。。

#14


该回复于2012-08-03 09:58:50被版主删除

#15


该回复于2012-08-03 14:40:40被版主删除

#16


switch...case 是面向过程的语法,在面向对象语言中应尽量少地使用

#17


引用 6 楼  的回复:
long是不支持的
jdk1.7开始支持String

已验证

#18


该回复于2012-08-04 17:04:39被版主删除