黑马程序员技术交流社区

标题: switch [打印本页]

作者: vipzh    时间: 2012-12-2 13:14
标题: switch
switch()后面为什么可以是int,也可以是char,而不可以是long呢?这个要怎么看
作者: 齐银春    时间: 2012-12-2 13:34
swtich()里面必须是int和enum--即枚举类型。short、 char 或者 byte他会自动转换为int的。。long不能自动转换为int..因为long比int范围大..可能会丢失精度..
作者: 婂埖糖    时间: 2012-12-2 14:14
switch之后括号内的表达式只能是整型(byte、short、char和int)、枚举型或字符型表达式,不能是长整型long 或其他任何类型。简单的说,这是java语法的规定。如果非要原因,顶多,这可以算一个:如果允许long或者String,编译器和JVM实现起来会复杂一些,尤其是:可能无法把switch/case语句编译成时间和空间都非常高效的指令跳转表。




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