2

可能重复:
为什么 Java 中的布尔值只接受真或假?为什么不是 1 或 0 呢?

我今天想知道为什么 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 中是不可能的(你必须继续测试== 0or == null)?

4

2 回答 2

0

因为 James Gosling等人认为 Java 不会那样做。

于 2012-05-15T15:52:44.380 回答
0

我猜想这样做的原因是因为它简化了事情。

if 语句必须将值评估为两个可能条件之一。Java 所做的是要求您提供一个语句本身,该语句必须评估两个可能的条件(布尔值)而不是接受其他值并任意决定其评估结果为真还是假。

于 2012-05-15T15:52:57.200 回答