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

看到一道题:swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。
我看书上说的LONG 是长整型,长度是8,范围是 -9223372036854775808 ~ 9223372036854775807 很大..,意思Long也是整数,为什么不能传给SWITCH呢?望高人指点。

交换机在JAVA中不能使用long的根本原因是长时间转换为int将失去精度,导致数据不准确,因此JAVA交换机具有不允许长的逻辑规则。

switch语句中的变量类型可以是:byte,short,int或char。从Java SE 7开始,交换机支持字符串String类型,case标记必须是字符串常量或文字。


扩展资料

Switch案例在java中有以下规则:

switch语句可以有多个case语句。每个案例后跟一个值和一个要比较的冒号。

case语句中值的数据类型必须与变量的数据类型相同,并且只能是常量或文字常量。

当变量的值等于case语句的值时,case语句后面的语句开始执行,直到break语句出现跳出switch语句。

遇到break语句时,switch语句终止。程序跳转到switch语句后的语句执行。 case语句不必包含break语句。如果没有发生break语句,程序将继续执行下一个case语句,直到发生break语句。

switch语句可以包含一个默认分支,它通常是switch语句的最后一个分支(可以是任何地方,但建议在最后一个)。当case语句没有值且变量的值相等时,执行Default。默认分支不需要break语句。

参考资料:百度百科-JAVA

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-09-09

JAVA中switch为什么不能使用long的根本原因是long转化成int会丢失精度,导致数据不准确,所以JAVA的switch有不允许使用long的逻辑规则。

switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。



扩展资料


Switch案例在java中有以下规则:

1、switch语句可以有多个case语句。每个案例后跟一个值和一个要比较的冒号。

2、case语句中值的数据类型必须与变量的数据类型相同,并且只能是常量或文字常量。

3、当变量的值等于case语句的值时,case语句后面的语句开始执行,直到break语句出现跳出switch语句。

4、遇到break语句时,switch语句终止。程序跳转到switch语句后的语句执行。 case语句不必包含break语句。如果没有发生break语句,程序将继续执行下一个case语句,直到发生break语句。

5、switch语句可以包含一个默认分支,它通常是switch语句的最后一个分支(可以是任何地方,但建议在最后一个)。当case语句没有值且变量的值相等时,执行Default。默认分支不需要break语句。

Java 在电子商务领域以及网站开发领域占据了一定的席位。开发人员可以运用许多不同的框架来创建web项目,SpringMVC,Struts2.0以及frameworks。

即使是简单的 servlet,jsp和以struts为基础的网站在政府项目中也经常被用到。例如医疗救护、保险、教育、国防以及其他的不同部门网站都是以Java为基础来开发的。

嵌入式领域,Java在嵌入式领域发展空间很大。在这个平台上,只需130KB就能够使用Java技术(在智能卡或者传感器上)。

大数据技术,Hadoop以及其他大数据处理技术很多都是用Java,例如Apache的基于Java的HBase和Accumulo以及 ElasticSearchas。

高频交易的空间,Java平台提高了这个平台的特性和编译,他同时也能够像 C++ 一样传递数据。正是由于这个原因,Java成为的程序员编写交易平台的语言,因为虽然性能不比C++,但开发人员可以避开安全性,可移植性和可维护性等问题。

科学应用,Java在科学应用中是很好选择,包括自然语言处理。最主要的原因是因为Java比C++或者其他语言相对其安全性、便携性、可维护性以及其他高级语言的并发性更好。

本回答被网友采纳
第2个回答  2019-07-11

JAVA中switch为什么不能使用long的根本原因是long转化成int会丢失精度,导致数据不准确,所以JAVA的switch有不允许使用long的逻辑规则。

switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。

扩展资料

switch case 在java中还有如下规则:

1、switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。

2、case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。

3、当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。

4、当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。

5、switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。

本回答被网友采纳
第3个回答  推荐于2017-09-15
swtich()里面必须是int和enum--即枚举类型。

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

long不能自动转换为int..

因为long比int范围大..可能会丢失精度..本回答被提问者采纳
第4个回答  2010-07-30
这个,以我浅薄的知识来解答一下,首先,JAVA定义SWITCH只能用枚举和整形来作为参数,里面是case,int的表达范围已经是很广了,如果能从头到尾CASE下来,那么,这个源程序已经得数十亿行了,所以,对于一个switch来说,INT的范围应该是够了吧。至于究竟为什么,我也没有开发过JAVA,不太明白。纯属猜测
相似回答