-2

この質問は、優れたコードとコード最適化の開発に関するものです。

boolean a = false;

どの状態がベストか

if(a == false)

また

if(!a)

システムレベルで両方の条件で何が起こるか説明してください。

4

4 に答える 4

3

これらはおそらく、コンパイラーによって決定されたものとまったく同じ命令になります (問題の言語が何であれ)。

于 2013-04-30T10:14:58.453 に答える
3
if (!a)

もう 1 つは、恐ろしい「ブーリアン ロンダリング」スタイルです。

内部的には同じ意味です (C でも is の場合は両方の条件が真aです0)、最適化に関して違いはありません。

于 2013-04-30T10:17:52.307 に答える
1

それらはまったく同じです。コンパイラは、最適な方法でコードをコンパイルします。

于 2013-04-30T10:15:01.403 に答える
0

ブール変数で行われた操作の履歴に依存すると思います。

異なる型を使用して値を割り当てる、数式を使用するなどの異常な方法で以前にブール変数に値を割り当てたことがある場合は、2番目の選択肢だと思います: if(!a) の方が安全で、期待どおりに機能する可能性が高くなりますが、ブール値のみに評価されるブール変数または式のみを使用して常に値を割り当てている場合は、それほど重要ではありません。ただし、個人的には最初の選択肢である if(a == false)の方が読みやすいと思います。

パフォーマンスに関しては、他のすべての回答に同意します。

于 2013-04-30T10:45:32.483 に答える