1

PHPとjavascriptを扱っているときに、まだ学習中ですが、次のようにしても同じ結果が得られるようです。

        if( ( $A==0 ) && ( $B==0 ) ){}

        if( $A==0 && $B==0 ){}

プログラミングでこれを表す適切な用語は何ですか。それについてもっと学ぶことができます。

4

9 に答える 9

7

括弧は、比較が行われる順序を決定します。あなたの例は、括弧をまったく必要としない非常に単純な例ですが、次のようなものを見てください

if ($a == 0 || $b == 0 && $c == 0 || $dd == 0)

これは実際には同等です

if ($a == 0 || ($b == 0 && $c == 0) || $dd == 0)

&&PHPで最初に評価されるのは、PHPよりも優先順位が高いためです。||

ほとんどの場合、複雑な条件文がある場合は、操作の順序を正しくしない場合は括弧を使用し、少なくともコードリーダーに何をしようとしているのかを明確にする必要があります。

于 2012-08-16T18:48:03.313 に答える
5

この用語は、演算子の優先順位と呼ばれます。

http://php.net/manual/en/language.operators.precedence.php

于 2012-08-16T18:40:54.957 に答える
5

演算子の優先順位規則により、2 つの行は同じです。

は演算子==よりも優先され&&ます。

余分な (不要な) 括弧は、ステートメントをより明確にするために使用されることもあれば、作成者が優先順位を知らないために使用されることもあれば、ブードゥー教のプログラミングのために使用されることもあります。

于 2012-08-16T18:43:15.237 に答える
4

@asawyerが言ったように、操作の順序。

ソース: http://en.wikipedia.org/wiki/Order_of_operations#Programming_languages

于 2012-08-16T18:41:12.033 に答える
4

あなたの特定の例では違いはありませんが、paranthethis が大きな違いを生む場合があります。

例:

if(a == 0 && (b == 0 || c == 0)) {
    // do something
}

お気付きかもしれませんが、この場合、3 つの変数のうち 2 つだけが o で 0 でなければなりません。

于 2012-08-16T18:44:40.163 に答える
2

これは演算子の優先順位と呼ばれます

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と評価されます

于 2012-08-16T18:46:41.077 に答える
2

表示されているのは、操作の順序に基づく追加の括弧です。括弧は通常の順序を上書きするために使用されます。数学的な例をとるには:

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)

ある意味で、これによりコードが少しきれいに見え、比較が最初に評価されることが保証されます。

于 2012-08-16T18:48:12.543 に答える
1

角かっこは、複数を処理するときに使用され、&&および||としても知られandていorます。これは数学によく似ています。方程式2+4 * 2 = 10がある場合、これは加算の前に乗算を行うためです。ここで、(2 + 4)* 2 = 12は、角かっこで足し算を行うためです。

つまり、一言で言えば、括弧はif演算で最も優先されます。

これがあなたにとってより明確になることを願っています。ごきげんよう。

于 2012-08-16T18:46:44.137 に答える
0

両方の条件を同時にチェックする場合は、2 つの引数を組み合わせる必要がありますが、2 つの異なる括弧セットを使用してそれらを分離することで、if ステートメント内の各ループの各条件をチェックしています。

于 2015-01-21T18:40:22.543 に答える