黑马程序员技术交流社区

标题: switch条件类型问题 [打印本页]

作者: OnlyStyle    时间: 2014-10-28 22:46
标题: switch条件类型问题
  我记得switch()只能接收int和枚举类型的变量,但是测试byte、char、short也可以,考虑到这三个可以自动转换成int,想问问大家,当这三种类型变量被switch()接收时,类型是被提升了么?如果被提升了,那么是只是在switch块内有效的提升还是可以延伸到switch外的提升啊?

作者: 冥夜    时间: 2014-10-29 22:37
毕老师视频里说switch()可以接收int,byte,char,short。没有说只能int,应该不会自动转换的。
作者: OnlyStyle    时间: 2014-10-29 23:16
冥夜 发表于 2014-10-29 22:37
毕老师视频里说switch()可以接收int,byte,char,short。没有说只能int,应该不会自动转换的。 ...

enum也可以的。

作者: 水点    时间: 2014-10-30 13:06
本帖最后由 水点 于 2014-10-30 13:08 编辑

switch后面的语句控制表达式可以是byte,short,int,char四个整数类型和枚举类型,Java7中改进了switch语句,运行java.lang.String类型,但不能是StringBuffer和StringBulider这两种字符串类型。

QQ图片20141030130757.jpg (174.37 KB, 下载次数: 290)

QQ图片20141030130757.jpg

作者: OnlyStyle    时间: 2014-10-30 17:36
水点 发表于 2014-10-30 13:06
switch后面的语句控制表达式可以是byte,short,int,char四个整数类型和枚举类型,Java7中改进了switch语句, ...

嗯,学习了。

作者: 小鸡捉你    时间: 2014-10-30 17:53
java 1.6(包括)以前,只是支持等价成int 基本类型的数据:byte ,short,char,int(其他的都不可以)。
1.7加入的新特性可以支持String类型的数据。




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