黑马程序员技术交流社区

标题: switch语句能否作用在byte上,能否作用在long上,能否作用在String上? [打印本页]

作者: 小飞龙    时间: 2012-7-19 15:05
标题: switch语句能否作用在byte上,能否作用在long上,能否作用在String上?
switch语句能否作用在byte上,能否作用在long上,能否作用在String上?
作者: 蒋映辉    时间: 2012-7-19 15:08
不能  只能是基本数据类型....
作者: 山水游客    时间: 2012-7-19 15:14
switch(x)中,x必须是整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。
作者: 孙新强    时间: 2012-7-19 15:26
switch(x)  这个x的取值可以为:
一: byte、short、int、char
二: 枚举类型(这个好像是jdk1.5或jdk1.6之后版本才能使用  具体哪个 我记不太清了)
作者: 黄锐    时间: 2012-7-19 16:02
整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以强转换为int,所以,这些类型以及这些类型的包装类型也是可以的。显然,long和String类型都不符合switch的语法规定,并且不能被强转换成int类型,所以,它们不能作用于swtich语句中。
作者: 柳雷    时间: 2012-7-20 00:33
在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也是可以的。显然,long和String类型都不符合switch的语法规定,并且不能被隐式转换成int类型,所以,它们不能作用于swtich语句中。
作者: 丁二跃    时间: 2012-7-20 00:39
jdk 1.7 版本中switch 已经支持了 String

可惜……我没有试验过

:'( jdk 1.6 已经过时了 我们还在学习 1.5 啊
作者: 郑彬    时间: 2012-7-20 08:34
符合byte short int char这四种类型。可以使用swtich语句。因为可以转换为byte short char可以默认转化为int类型。以int为比较基本。而string long 不能转换,所以不行。
作者: themoon    时间: 2012-7-20 08:42
如果你非得要使用String类型与Long类型的数据,你可以试试强制类型转换。但是要注意的是,具我所知,Switch(n)中的n只能为int及比int小的基本数制类型,也就是说,要可以转换成int型的。
作者: 王龙彪    时间: 2012-7-20 10:00
在switch(表达式)中,表达式只能是一个整数表达式或者枚举
整数表达式可以是int基本类型或Integer包装类型
byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也是可以的。
long和String类型都不符合switch的语法规定,并且不能被隐式转换成int类型,所以,它们不能作用于swtich语句中。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2