5

つまり、どちらの論理演算子が他の論理演算子よりも「優先」または「読み取り」されます。

例えば:

if( x=y || y=y && x=x ){}

javaはこれを次のように読み取っています:(x = y || y = y)、AND(x = x)

またはas:(x = y)または(y = y AND x = x)のいずれか


尋ねられたか、少なくとも見つけやすいもののように聞こえますが、残念ながら、「and」+「or」はGoogleのキーワードです。

4

2 に答える 2

10

演算子&&はより優先順位が高い||ため、&&最初に評価されます。

http://introcs.cs.princeton.edu/java/11precedence/

それでも、多くのプログラマーはその事実を覚えていません。括弧を使用して、意図する評価の順序を具体的に示す方が、より明確で保守が容易です。

コードに次のように記述していることに注意してください

x=y

これは実際には代入演算子であり、等式演算子ではありません。おそらくあなたは意図している

x==y
于 2013-03-26T03:07:12.350 に答える
1

x=y || y=y && x=x =は割り当てであるため、xとyの両方がブール値である場合にのみ機能します。これはy || y && y、最初の操作のようにx=yを割り当てたためと同等です。

于 2013-03-26T03:17:54.683 に答える