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

看到一道题:swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?switch(expr1)中,expr1是一个整数表达式。因此传递给s... 看到一道题:swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。
我看书上说的LONG 是长整型,长度是8,范围是 -9223372036854775808 ~ 9223372036854775807 很大..,意思Long也是整数,为什么不能传给SWITCH呢?望高人指点。
展开
 我来答
百度网友37b2294
2010-07-30 · 超过22用户采纳过TA的回答
知道答主
回答量:94
采纳率:0%
帮助的人:57.4万
展开全部
Java语法的标准规定的。Long型的占得数据位数太大了。不过在JDK7.0的标准,switch可以使用string类型了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ddh19870220
2010-07-30 · TA获得超过380个赞
知道答主
回答量:117
采纳率:0%
帮助的人:75.1万
展开全部
char byte 等 可以向上转型至int 不会丢失精度,而如果把long转换成int 本身程序就是错的 除非强制类型转换,就像是你把大桶的水倒入小桶中是一个道理。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7dd2447
2018-08-22
知道答主
回答量:1
采纳率:0%
帮助的人:837
展开全部
long类型是(系统开辟64位空间),而case后的值默认为为int类型(系统开辟32位空间),long类型放不进去int类型值的空间,所以无法匹配。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式