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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© vipzh 中级黑马   /  2012-12-2 13:14  /  1102 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

switch()后面为什么可以是int,也可以是char,而不可以是long呢?这个要怎么看

2 个回复

正序浏览
switch之后括号内的表达式只能是整型(byte、short、char和int)、枚举型或字符型表达式,不能是长整型long 或其他任何类型。简单的说,这是java语法的规定。如果非要原因,顶多,这可以算一个:如果允许long或者String,编译器和JVM实现起来会复杂一些,尤其是:可能无法把switch/case语句编译成时间和空间都非常高效的指令跳转表。

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
swtich()里面必须是int和enum--即枚举类型。short、 char 或者 byte他会自动转换为int的。。long不能自动转换为int..因为long比int范围大..可能会丢失精度..
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马