PHPとjavascriptを扱っているときに、まだ学習中ですが、次のようにしても同じ結果が得られるようです。
if( ( $A==0 ) && ( $B==0 ) ){}
if( $A==0 && $B==0 ){}
プログラミングでこれを表す適切な用語は何ですか。それについてもっと学ぶことができます。
PHPとjavascriptを扱っているときに、まだ学習中ですが、次のようにしても同じ結果が得られるようです。
if( ( $A==0 ) && ( $B==0 ) ){}
if( $A==0 && $B==0 ){}
プログラミングでこれを表す適切な用語は何ですか。それについてもっと学ぶことができます。
括弧は、比較が行われる順序を決定します。あなたの例は、括弧をまったく必要としない非常に単純な例ですが、次のようなものを見てください
if ($a == 0 || $b == 0 && $c == 0 || $dd == 0)
これは実際には同等です
if ($a == 0 || ($b == 0 && $c == 0) || $dd == 0)
&&
PHPで最初に評価されるのは、PHPよりも優先順位が高いためです。||
ほとんどの場合、複雑な条件文がある場合は、操作の順序を正しくしない場合は括弧を使用し、少なくともコードリーダーに何をしようとしているのかを明確にする必要があります。
この用語は、演算子の優先順位と呼ばれます。
演算子の優先順位規則により、2 つの行は同じです。
は演算子==
よりも優先され&&
ます。
余分な (不要な) 括弧は、ステートメントをより明確にするために使用されることもあれば、作成者が優先順位を知らないために使用されることもあれば、ブードゥー教のプログラミングのために使用されることもあります。
@asawyerが言ったように、操作の順序。
ソース: http://en.wikipedia.org/wiki/Order_of_operations#Programming_languages
あなたの特定の例では違いはありませんが、paranthethis が大きな違いを生む場合があります。
例:
if(a == 0 && (b == 0 || c == 0)) {
// do something
}
お気付きかもしれませんが、この場合、3 つの変数のうち 2 つだけが o で 0 でなければなりません。
これは演算子の優先順位と呼ばれます
if( ( $A==0 ) && ( $B==0 ) ){}
if( $A==0 && $B==0 ){}
あなたの例では、両方の行が同じものを評価しています。基本的に、括弧内のものが最初に処理されます。これは、次のようなものがある場合によくわかります。
if( ( $A==0 && $C!= 1) && ( $B==0 || $D >0) ){}
上記の例では。内部 の条件( $A==0 && $C!= 1)
と( $B==0 || $D >0)
が最初に評価され、次に結果がメイン&&
サインに対して評価されます。
だから仮定:
( $A==0 && $C!= 1) evaluated to TRUE
と
( $B==0 || $D >0) evaluated to FALSE
状態
if( ( $A==0 && $C!= 1) && ( $B==0 || $D >0) ){}
になります
if( ( TRUE) && ( FALSE) ){}
これは自然に最終的にFALSEと評価されます
表示されているのは、操作の順序に基づく追加の括弧です。括弧は通常の順序を上書きするために使用されます。数学的な例をとるには:
7 + 2 * 4 + 3
最初2 * 4
に8と評価され、次のようになります。
7 + 8 + 3
乗算は加算よりも優先順位が高いため、最初に評価されます。括弧を使用してこれをオーバーライドできます。
(7 + 2) * 4 + 3
この場合、評価される最初の操作は加算であり、次のようになります。
9 * 4 + 3
if
同じ原則が、ステートメント内のビット単位、ブール値、および比較演算子にも適用されます。比較演算はブール演算子よりも優先順位が高いため、次のようになります。
1 == 4 || 7 > 3
比較が最初に評価され、
false || true
多くのプログラマーは、比較の前後に括弧を付けることにより、「安全に」プログラミングすることに慣れています。
(1 == 4) || (7 > 3)
ある意味で、これによりコードが少しきれいに見え、比較が最初に評価されることが保証されます。
角かっこは、複数を処理するときに使用され、&&
および||
としても知られand
ていor
ます。これは数学によく似ています。方程式2+4 * 2 = 10がある場合、これは加算の前に乗算を行うためです。ここで、(2 + 4)* 2 = 12は、角かっこで足し算を行うためです。
つまり、一言で言えば、括弧はif演算で最も優先されます。
これがあなたにとってより明確になることを願っています。ごきげんよう。
両方の条件を同時にチェックする場合は、2 つの引数を組み合わせる必要がありますが、2 つの異なる括弧セットを使用してそれらを分離することで、if ステートメント内の各ループの各条件をチェックしています。