2

重複の可能性:
Java のブール値が true または false のみを取るのはなぜですか? なぜ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メモリ内で値を持つことができるもの。

== 0質問: Java でこれができないのはなぜですか( またはのテストを続ける必要があります== null)。

4

2 に答える 2

0

James Gosling et alは、Javaはそうしないと決めたからです。

于 2012-05-15T15:52:44.380 に答える
0

理由は、物事を単純化するためだと思います。

ifステートメントは、2つの可能な条件のいずれかに対して値を評価する必要があります。Javaが行うことは、他の値を受け入れるのではなく、2つの可能な条件(ブール値)に評価し、それがtrueまたはfalseに評価されるかどうかを任意に決定する必要があるステートメント自体を提供することを要求します。

于 2012-05-15T15:52:57.200 に答える