可能重复:
Why boolean in Java takes only true or false? Why not 1 or 0 also?
我今天想知道为什么Java不能测试除布尔值之外的任何其他类型。
在C、C++和许多其他语言(实际上是大多数编程语言)中,以下内容是可能的和有效的:
int a = 0;
if (a) // evaluates to false
; // do something nice
a = 6;
if (a) // evaluates to true
; // do something more
这几乎在任何地方都适用于对象、数组;可以在内存中具有0x00000000
值的任何东西。
问题是:为什么在Java中这是不可能的(您必须继续测试== 0
或== null
)?
发布于 2012-05-15 07:52:57
我猜想其理由是因为它简化了事情。
if语句必须将值计算为两种可能的条件之一。Java所做的是要求您提供一个语句本身,该语句必须计算成两个可能的条件(布尔值),而不是接受其他值,并任意决定计算值为true还是false。
发布于 2012-05-15 07:52:44
因为等人决定Java不会这么做。
https://stackoverflow.com/questions/10604403
复制相似问题