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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨华东 中级黑马   /  2012-10-9 13:57  /  1596 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

6 个回复

正序浏览
在switch(expr1)中,expr1只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是int基本类型或Integer包装类型,由于,byte,short,char都可以隐含转换为int,所以,这些类型以及这些类型的包装类型也是可以的。显然,long和String类型都不符合sitch的语法规定,并且不能被隐式转换成int类型,所以,它们不能作用于swtich语句中。
回复 使用道具 举报
java 1.7以前,只支持基本类型的数据:byte ,short,char,int(其他的都不可以)和枚举。
1.7加入的新特性可以支持String类型的数据。
回复 使用道具 举报
我百度了一下下,switch后面的小括号内确实不能是string和long这两种类型的
回复 使用道具 举报
不是说switch(),这个格式,小括号内只能是byte、shrot、int、char这四种类型吗??
回复 使用道具 举报
switch 后允许的数据类型Integer(int),Byte(byte), Short(short)和Character(char)
,jdk 5.0加入枚举,
jdk 7.0加入String;

评分

参与人数 1技术分 +1 收起 理由
尤圣回 + 1 赞一个!

查看全部评分

回复 使用道具 举报
能作用在 byte上 能作用在long上
不能直接作用在 string 上
但可以通过hashcode比较

评分

参与人数 1技术分 +1 收起 理由
唐志兵 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马