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

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

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作成・AIで再検証済

解説

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

  • i++:式の値は増やす前の i=5。副作用として i は 6 になる。
  • ++i:まず i を 7 に増やし、式の値も7。

j = 5 + 7 = 12。最終的な i は 7。よって出力は 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が作成し、別の手順のAIで誤りを点検した解説です(有資格者による監修は経ていません)

この問題集の作り方

  1. 問題と解説はAIが作成しています。この資格の問題に、有資格者(著者)の監修は入っていません。
  2. 各問に、公式ドキュメントの出典リンクを付けています。書いてあることは、出典に当たって確かめられます。
  3. 誤答の選択肢それぞれに、なぜ誤りなのかの理由を書いています。
  4. 誤りを見つけたら報告できます。原則として無償で訂正・削除します。
  5. 各試験の運営団体とは無関係の非公式教材です。合格を保証するものではありません。
この分野をもっと解いて、得点源に
演算子 を含む問題を分野別に演習できます。
演習する →