LONGEPASS
Q87.

一Java 程式片段如下,執行後x 值為何?電腦軟體設計(JAVA) 乙級 Java 第 87 題 題目 圖片

電腦軟體設計(JAVA) · 乙級 · Java · Q87

難易度分析

4 / 5

本題需要同時掌握後置遞增運算子的優先順序以及邏輯運算的短路特性,且必須針對迴圈內變數的數值變動進行精確的逐步追蹤,屬於需要結合多個程式語言特性進行邏輯推導的計算型問題。

正確答案:③7

③ 7:正確。追蹤執行過程:i=1~3 時 `(x++>2)` 皆為 false,x 遞增至 3;i=4 時 `(x++>2)` 為 true(3>2),x 變 4 後進入 if 區塊再 `x++` 變 5;i=5 時 `(x++>2)` 為 true(5>2),x 變 6 後進入 if 區塊再 `x++` 變 7。

錯誤選項解析

  • ① 5:此答案未正確計算 for 迴圈 的迭代次數與 後置遞增運算子 (x++) 的執行順序。迴圈從 i=1 執行至 i=5 共 5 次,每次條件判斷後 x 都會遞增,最終值大於 5。
  • ② 6:此答案忽略了 短路運算 (short-circuit evaluation) 的特性。當 `(x++>2)` 為 true 時,`(y++)>2` 不會被執行,但 `x++` 在 if 區塊內仍會再執行一次,導致 x 值比預期更高。
  • ④ 8:此答案高估了 x 的最終值。關鍵在於 後置遞增 是「先取值比較、後遞增」,且 || 短路運算 在左側為 true 時跳過右側,y 的遞增次數有限,不會額外影響 x 的計算。
Learning Tip

"此類題型常考 後置遞增 (x++) 與前置遞增 (++x) 的差異,以及 || 短路運算 的跳過機制。解題時務必逐步追蹤每次迴圈中變數的實際值變化,特別注意條件判斷式內的遞增會在比較「之後」才生效,而 if 區塊內的 `x++` 是額外增加的。"

學員答題分佈

①50%
②60%
③70%
④80%

此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!

相似類型題目