• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:論理演算について質問)

論理演算について質問

このQ&Aのポイント
  • 論理演算子について質問しました。'&&'や'||'などの論理演算子は、2つのboolean型のオペランドに対して演算するのでしょうか?答えはYESです。
  • また、括弧を用いることにより、演算子の結合順を変えることもできます。
  • 結合順とは、ある演算子がオペランドを結合し、その括弧内の両側のオペランドをつなぐことです。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

質問1: 「オペランドに対して論理演算する」という文の意味が曖昧なので回答不能です。 && や || でなく、& や | についてなら、YESかな。 A && B は、Aを評価して真ならBを評価してBの結果を値とします。Aが偽ならBを評価せず結果は偽。 A || B は、Aを評価して偽ならBを評価してBの結果を値とします。Aが真ならBを評価せず結果は真。 質問2: 評価順序と結合順について。 評価順序については、各被演算項が副作用を伴うメソッド呼び出しであるケースを考えると理解出来るかと思います。下記の出力結果を予想してから実行してみてください。 public static boolean t(int x) { System.out.println("t("+x+") is called."); return true; } public static boolean f(int x) { System.out.println("f("+x+") is called."); return false; } public static void main (String[] args) { System.out.println( ( t(1) | f(2) ) & f(3) ); System.out.println( t(1) | ( f(2) & f(3) ) ); } 各被演算項の評価順序と、どの二項演算が先に行われるかは、無関係です。 >「ある演算子がオペランドを結合している」、こういうことでしょうか? 答えはYESかな。

wantanton
質問者

お礼

丁重なご回答ありがとうございます^^ 参考になります

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

論理演算子はショートカット演算をするので, 数学的な操作とは必ずしも一致しません. 上の質問であなたが聞いているので「数学的な操作」ですか? それとも, 「Java における実際の動作」ですか? 下の質問については日本語の意味がよくわからんのでパス. いずれにしても, 言語仕様は見た?

wantanton
質問者

お礼

丁重なご回答ありがとうございます! 言語仕様書見ましたが、難しすぎてちんぷんかんぷんです、、