1

次のようなブール式を構造化する利点はありますか:

if (0 < x) { ... }

それ以外の

if (x > 0) { ... }

私は常に 2 番目の方法を使用してきました。常に変数を最初のオペランドとして置き、意味のあるブール演算子を使用していましたが、最近、最初の方法を使用するコードを読みました。より多くの。

これで、上記の例のように、変数が最初のオペランドではないことを意味する場合でも、<使用するすべてのブール式を書き始めました。<=私には読みやすさが向上するように思えますが、それは私だけかもしれません:)

他の人はこれについてどう思いますか?

4

5 に答える 5

3

比較しようとしている式が何であれ、最も自然なことを行います。

他の操作 ( など) について疑問がある場合==は、これらの比較のオペランドの順序を比較する前のトピック (およびその理由) があります。

于 2010-02-13T07:01:44.443 に答える
0

これは主に、条件=の代わりに使用するという問題を回避するために行われます。一貫性を保つために、多くの人が同じものを他の演算子にも使用しています。私はそれをすることに何の問題も見ません。==if

于 2010-02-13T07:05:24.987 に答える
0

最も「読みやすい」ものを使用してください。指摘しておきたいことの 1 つは、値が境界内にあるかどうかをテストする場合、境界が数式の場合と同じように「外側」になるように記述しようとすることです。

したがって、それをテストするには (0 < x <= 10):

 if ((0 < x) && (x <= 10)) { ... }

それ以外の

 if ((0 < x) && (10 >= x)) { ... }

また

 if ((x > 0) && (10 >= x)) { ... }

このパターン作成は、ロジックに従うのがいくらか簡単だと思います。

于 2010-02-13T07:05:35.077 に答える
0

数値を最初に置く利点は、== が必要なときに = を使用するバグを防ぐことができることです。

if ( 0 == x ) // ok
if ( 0 = x )  //is a compiler error

微妙なバグと比較してください:

if ( x = 0 )  // assignment and not comparison. most likely a typo
于 2010-02-13T07:09:18.167 に答える
0

正直なところ、右辺に変数を使用して式を記述することは珍しく、その異常性の直接的な結果として、読みやすさが損なわれます。コーディング規約は、規約であるというだけで本質的な価値があります。人々は、x >= 0一例として、特定の標準的な方法で書かれたコードに慣れています。このような単純な規範から不必要に逸脱することは、正当な理由がない限り避けるべきです。

「最初の奇妙さを乗り越える」必要があったという事実は、おそらく危険信号であるべきです。

0 < xJava でハンガリー語表記を使用しないのと同じように、私は書きません。ローマにいるときは、ローマ人がするようにしなさい。ローマ人は書いていx >= 0ます。いいえ、大したことではありません。不必要なちょっとした癖のように思えます。

于 2010-02-13T07:29:58.960 に答える