sar*_*nan 31 java switch-statement
为什么不switch表达允许long,float,double或boolean在Java中值?为什么只允许 int(和那些自动升级的int)允许?
Jon*_*eet 33
即使它们是可能的,浮点数和双精度也难以可靠地使用 - 不要忘记,由于表示的性质,无论如何在float/double上执行精确的相等匹配通常都是一个坏主意.
对于布尔值,为什么不只是if用来开始?
老实说,我不记得曾经想要打开这些类型中的任何一种.你有特定的用例吗?
您可以enum在switch语句中使用Java 7将添加String AFAIK。switch语句来自C,其中仅允许int,而实现其他类型则更加复杂。
浮点数不是切换的理想选择,因为精确比较经常会由于舍入误差而中断。例如0.11 - 0.1 == 0.01是错误的。
开启boolean并没有多大用处,因为简单的if声明会更简单
if(a) {
} else {
}
Run Code Online (Sandbox Code Playgroud)
不会更简单
switch(a) {
case true:
break;
case false:
break;
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句:我会使用switch(long),如果有的话,但是没有。无论如何,这对我来说都是罕见的用例。
| 归档时间: |
|
| 查看次数: |
58416 次 |
| 最近记录: |