A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

switch语句能否作用在byte上,能否作用在long上,能否作用在String上?

12 个回复

倒序浏览
不能  只能是基本数据类型....
回复 使用道具 举报
switch(x)中,x必须是整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。
回复 使用道具 举报
switch(x)  这个x的取值可以为:
一: byte、short、int、char
二: 枚举类型(这个好像是jdk1.5或jdk1.6之后版本才能使用  具体哪个 我记不太清了)

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以强转换为int,所以,这些类型以及这些类型的包装类型也是可以的。显然,long和String类型都不符合switch的语法规定,并且不能被强转换成int类型,所以,它们不能作用于swtich语句中。
回复 使用道具 举报
在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也是可以的。显然,long和String类型都不符合switch的语法规定,并且不能被隐式转换成int类型,所以,它们不能作用于swtich语句中。

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
jdk 1.7 版本中switch 已经支持了 String

可惜……我没有试验过

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