2013-05-29 42 views
5

このステートメントと同等のものは何ですか?と操作の順序

if(cond1 AND cond2 AND cond3 OR cond4 AND cond5 AND cond6) 

if((cond1 AND cond2 AND cond3) OR (cond4 AND cond5 AND cond6)) 

それとも

if(cond1 AND cond2 AND (cond3 OR cond4) AND cond5 AND cond6) 

それとも

if(((cond1 AND cond2 AND cond3) OR cond4) AND cond5 AND cond6) 

電気ショック療法...

このヘクタールです私はいつも怖がっていたことがありました。私は括弧内の条件を囲んでいます。()。私の心が落ち着くことができれば幸いです。

+0

は素晴らしいアイデアです。 –

答えて

9

であることを自分自身を満足させるために、非常に小さなテストをでっち上げることが可能であるべきである、と述べた

if((cond1 AND cond2 AND cond3) OR (cond4 AND cond5 AND cond 6)) 

が適切です。 C#の場合

、Javaの場合http://en.cppreference.com/w/cpp/language/operator_precedence

を参照してください、Cについてhttp://msdn.microsoft.com/en-us/library/aa691323%28v=vs.71%29.aspx

を参照してください、このことを覚えているための良い方法は、数学的に考えているhttp://bmanolov.free.fr/javaoperators.php

+0

_in **ほとんど** languages_:そうではありませんか? – inetphantom

0

多くの言語が最初に評価されます。

0

これは、お望みの言語や環境によって異なりますが、残念ながら指定していません。

ANDは、ORよりも優先順位が高くなる場合があります。逆の場合もありますが、等しい場合もあります。

あなたの言語がそれを持っているANDためには非常に一般的です:-)

サディストによって設計された場合には、方向を交互に外側に途中から、右から左、左から右に評価またはすることができますORよりも優先順位が高く、両方とも左から右への結合である必要があります。

cond1 AND cond2 AND cond3 OR cond4 AND cond5 AND cond 6 

と等価であろうその場合

:(論理の観点から)ブール結合子の通常のセットにおいて

((cond1 AND cond2) AND cond3) OR ((cond4 AND cond5) AND cond 6) 
1

andorより高い優先度であるので、A or B and C実際にはA or (B and C)です。 Wikipediaはそれらを順番にリストします。ほとんどのプログラミング言語は本当に変わっていない限り、この規約に従うべきです。あなたの特定の言語や環境のために、一つの方法またはANDはまず、 ので、評価され、最もlanguegesで他:)

9

を参照してください。

  • OR(乗算)*として

    • AND(追加)+として
    • TRUE1
    • FALSEとして0

    ように、あなたがこれを取得する簡単な数学のようなものと考えて:

    • 0 * 0 = 0
    • 1 * 0 = 0
    • 1 * 1 = 1
    • 0 + 0 = 0
    • 1 + 0 = 1
    • 1 + 1 = 1

    小さなビットが混乱することができる唯一の事は1 + 1 = 1ですが、少しは行くことができません上記の1

    だから、これを念頭に置いて、あなたは、このロジックを適用することができます

    if(cond1 AND cond2 AND cond3 OR cond4 AND cond5 AND cond6)

    は次のようになります。

    if(cond1 * cond2 * cond3 + cond4 * cond5 * cond6)

    は参照してください。明確にするために括弧を使用しhttps://en.wikipedia.org/wiki/Order_of_operations

  • +1

    これはブール演算について考えてみると本当にクールな方法ですが、これはopsの順序を記憶するためのボーナスニーモニックとして機能します。ブリリアント。ありがとう! –

    関連する問題