AI作成・独立検証済(有資格者監修なし)1Z0-815 対応
インクリメント/デクリメント演算子(前置・後置の評価順)難易度 高無料

次のコードの出力として正しいものを選べ。

1  public class Q3 {
2      public static void main(String[] args) {
3          int i = 5;
4          int j = i++ + ++i;
5          System.out.println(i + " " + j);
6      }
7  }
  1. A7 12
  2. B7 13
  3. C6 12
  4. D7 11
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

後置 i++ は「現在の値を式の値として使い、その後に i を1増やす」。前置 ++i は「先に i を1増やし、増やした後の値を式の値として使う」。この違いを左から順に追う。

  • i++:式の値は増やす前の i5。副作用として i6 になる。
  • ++i:まず i7 に増やし、式の値も7

j = 5 + 7 = 12。最終的な i7。よって出力は 7 12

各誤答が違う理由
  • Bi++ の式の値を増加後の6と誤解した計算(6+7=13)。後置演算子の式の値は増やす前の値(5)である。
  • C最終的な i の値を取り違えた誤り。i++++i の副作用で i は5→6→7と2回増える。最終値は7。
  • D++i の式の値を増加前の6のまま使ったと仮定した誤り。前置演算子は増やした後の値(7)を返す。
ひっかけ:i++ + ++i は同じ i を2回参照するから i×2 のように単純に計算できる」と考えて i=6 のまま両方に6を使ってしまう(6+6=12 は偶然近い値になるが根拠が誤り)のが典型。各演算子がいつ値を確定させ、いつ副作用を起こすかを左から順に追う必要がある。
コマンド例と想定される挙動(未実行)
出力:
7 12
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
この分野をもっと解いて、得点源に
演算子 を含む問題を分野別に演習できます。
演習する →