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

論理演算について質問

このQ&Aのポイント
  • &&や||の論理演算子について、両側の関係式を1つ1つ評価することにより論理演算を行うのは正しいか
  • 論理式a==1 && b==0 || (a==1 && b==0)がtrueになるプロセスについての認識
  • 論理演算において、評価結果が確定した場合は残りの評価を行わない

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

  • ベストアンサー
  • salsberry
  • ベストアンサー率69% (495/711)
回答No.2

> 質問2:論理式 a==1 && b==0 || (a==1 && b==0)について、trueになるプロセスの認識は以下で正しいですか? 正しくありません。 ||の左右に同じ部分式があってまぎらわしいので、上記の式をA && B || (C && D)と書き換えて説明します。 評価する順序はこうなります。 1. Aを評価 → true 2. &&の左側がtrueなので次に右側のBを評価 → true 3. A && Bを評価 → true 4. ||の左側がtrueなので、この時点で式全体の値がtrueであると決まり、||の右側のCやDは評価しない

その他の回答 (1)

  • askaaska
  • ベストアンサー率35% (1455/4149)
回答No.1

何を確認したいのかがいまいち分からないのだけど。 論理演算というのは trueとfalseの組み合わせ これだけのもの。 それ以上でもそれ以下でもないわ。 面白いテストコードを提示してあげるわ。 public class Test { public static void main(String[] args) throws Exception { int i = 0; int k = 0; if (i++ == 0 || k++ == 0) { } System.out.printf("i = %d, k = %d", i, k); } } i++ というのは、そのロジックが実行された「後」に i = i +1を実行するという意味よ。 つまり、このコードによる出力結果が i = 1, k = 1 ならば、i == 0 と k ==0 の両方が評価されたってことになるわ。 さて、実際はどうかしら。 この実行結果があなたの求める答えになればいいんだけど。

関連するQ&A

専門家に質問してみよう