0

簡単な質問です。Javaでは、ANDはORよりも優先されますか? たとえば、このコードはどのように解釈されますか?

if(statement1 && statement2 || statement3)

これはどれと同じですか?

if(statement1 && (statement2 || statement3))

また

if((statement1 && statement2) || statement3)

前もって感謝します。

4

3 に答える 3

7

はい。APIドキュメントには、演算子の優先順位をリストした表があります:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html

しかし、なぜ &&が よりも優先されるべきかを理解することは良い考えだと思います||: 前者は多くの点で乗法作用ですが、後者は加法的作用です。2 つの独立したイベントABを考えて(A and B)p(A)*p(B)ましょう。* が + よりも優先されるというよく知られた規則との類推により、論理演算子をそのように評価する必要がある理由が説明されます。(A or B)p(A) + p(B)

于 2013-01-31T16:02:07.443 に答える
5

演算子のOracleチュートリアルで 述べたように、演算子&&はよりも優先されます||

注:どちらよりも&優先順位|が高く&&、次に||

優先順位が等しい演算子は、左から右に評価されます (代入演算子を除く)。たとえば、順序の問題1 + 2 + "3"と同じではありません。1 + (2 + "3")同様に100 / 10 / 2 != 100 / (10 / 2)

代入演算子a *= b += 5の場合は次と同じですa *= (b += 5)

于 2013-01-31T15:59:00.817 に答える
2

はい、ドキュメントによると、 (括弧を使用&&しない限り) が優先されます。||

于 2013-01-31T15:59:33.497 に答える