1. ホーム
  2. java

Javaでif (b == false)のようなブーリアン定数に対して明示的に比較することは悪いことですか?

2023-08-28 14:23:02

質問

書くのはまずいですか?

if (b == false) //...

while (b != true) //...

それは 常に と書く方がよいでしょう。

if (!b) //...

while (!b) //...

おそらく性能に差はないと思われますが(あるのか?)、両者の明示性、簡潔性、明瞭性、可読性などをどのように比較検討するのでしょうか?

更新

主観を制限するために、どちらが常に望ましいか、またはいつ使うべきかについて、権威あるコーディングスタイルガイドラインからの引用もお願いします。


ノート : 変数名 b は単に例として使われるだけで、ala foobar .

どのように解決するのですか?

必ずしも悪いわけではなく、余分なだけです。また、実際の変数名には大きな重みがあります。私は、例えば if (userIsAllowedToLogin) よりも if (b) あるいはさらに悪いことに if (flag) .

パフォーマンスの懸念については、コンパイラがどのような方法でも最適化してくれます。

信頼できるソースについては、私は Java コード規約 を Sun が元々書いたものですが、少なくとも チェックスタイル には SimplifyBooleanExpression モジュールがあり、それについて警告を出すでしょう。