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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 刘艳伟 于 2012-12-9 14:29 编辑

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

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

3 个回复

正序浏览
刘艳伟 发表于 2012-12-9 15:55
我配置的java环境就是JDK1.7的,我测试了一下,在这个的环境下,switch不支持String。 ...

这...听说是支持的才对啊...没了解...我一直用的是1.6...
回复 使用道具 举报
黑马黄涛 发表于 2012-12-9 15:10
switch后面的括号里面只能放int类型的值但是放byte,short,char类型的也可以是因为byte,short,shar可以 ...

我配置的java环境就是JDK1.7的,我测试了一下,在这个的环境下,switch不支持String。
回复 使用道具 举报
switch后面的括号里面只能放int类型的值但是放byte,short,char类型的也可以是因为byte,short,shar可以自动提升(自动类型转换)为int,你放的byte,short,shar类型,然后他们会自动转换为int类型(宽化,自动转换并且安全),其实最后放的还是int类型!long不行,是因为long类型不能自动转换为int类型,
string在jdk1.7中switch的值是可以,(听说)...
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马