黑马程序员技术交流社区

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

作者: 刘艳伟    时间: 2012-12-9 14:28
标题: switch语句能否作用在byte、long、String上?
本帖最后由 刘艳伟 于 2012-12-9 14:29 编辑

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

作者: 黑马黄涛    时间: 2012-12-9 15:10
switch后面的括号里面只能放int类型的值但是放byte,short,char类型的也可以是因为byte,short,shar可以自动提升(自动类型转换)为int,你放的byte,short,shar类型,然后他们会自动转换为int类型(宽化,自动转换并且安全),其实最后放的还是int类型!long不行,是因为long类型不能自动转换为int类型,
string在jdk1.7中switch的值是可以,(听说)...
作者: 刘艳伟    时间: 2012-12-9 15:55
黑马黄涛 发表于 2012-12-9 15:10
switch后面的括号里面只能放int类型的值但是放byte,short,char类型的也可以是因为byte,short,shar可以 ...

我配置的java环境就是JDK1.7的,我测试了一下,在这个的环境下,switch不支持String。
作者: 黑马黄涛    时间: 2012-12-9 16:05
刘艳伟 发表于 2012-12-9 15:55
我配置的java环境就是JDK1.7的,我测试了一下,在这个的环境下,switch不支持String。 ...

这...听说是支持的才对啊...没了解...我一直用的是1.6...




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