Long也是整数,为什么不能传给SWITCH呢?



JAVA中SWITCH为什么不能使用LONG型作参数?
检举 | 2010-7-30 11:50 提问者: zhouyang00001 | 浏览次数:1676次
看到一道题:swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。
我看书上说的LONG 是长整型,长度是8,范围是 -9223372036854775808 ~ 9223372036854775807  很大..,意思Long也是整数,为什么不能传给SWITCH呢?望高人指点。
我来帮他解答
  2010-7-30 11:56 满意回答
swtich()里面必须是int和enum--即枚举类型。


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


long不能自动转换为int..


因为long比int范围大..可能会丢失精度..
14
| 评论
 
向TA求助
回答者: Jseven_jy | 九级采纳率:31% 名人
擅长领域: JAVA相关 程序设计 C/C++
参加的活动: 暂时没有参加的活动
提问者对回答的评价:

解惑了,感谢大家!


char  byte  等 可以向上转型至int  不会丢失精度,而如果把long转换成int  本身程序就是错的 除非强制类型转换,就像是你把大桶的水倒入小桶中是一个道理。 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值