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