JAVA中SWITCH为什么不能使用LONG型作参数?

JAVA中SWITCH为什么不能使用LONG型作参数? 20

https://zhidao.baidu.com/question/170837593.html

看到一道题:swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。
我看书上说的LONG 是长整型,长度是8,范围是 -9223372036854775808 ~ 9223372036854775807 很大..,意思Long也是整数,为什么不能传给SWITCH呢?望高人指点。收起
zhouyang00001 | 浏览 9798 次 |举报
我有更好的答案
 
推荐于2017-09-15 12:22:22 最佳答案
 
swtich()里面必须是int和enum--即枚举类型。

short、 char 或者 byte他会自动转换为int的。。

long不能自动转换为int..

因为long比int范围大..可能会丢失精度..
 
 

Jseven_jy 

采纳率:48% 擅长: JAVA相关 编程语言 成都市 杭州市 宠物

其他回答

这个,以我浅薄的知识来解答一下,首先,JAVA定义SWITCH只能用枚举和整形来作为参数,里面是case,int的表达范围已经是很广了,如果能从头到尾CASE下来,那么,这个源程序已经得数十亿行了,所以,对于一个switch来说,INT的范围应该是够了吧。至于究竟为什么,我也没有开发过JAVA,不太明白。纯属猜测
我想我是JACK  发布于2010-07-30
举报| 评论 
8
Java语法的标准规定的。Long型的占得数据位数太大了。不过在JDK7.0的标准,switch可以使用string类型了。
 
 

 

posted @ 2018-03-04 00:06  sky20080101  阅读(862)  评论(0)    收藏  举报