LONGEPASS
Q88.

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

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

難易度分析

4 / 5

本題結合了迴圈控制、前置與後置遞增運算子的差異,以及邏輯運算子的短路特性,要求考生必須精確模擬程式執行過程並區分運算優先順序,具有較高的邏輯推演難度。

正確答案:①2

① 2:短路運算子 `||` 的特性:當左側條件 `++x>2` 為 true 時,右側 `++y>2` 不會執行。迴圈中 `i=1,2` 時 `x` 遞增至 2,`i=3` 時 `++x` 變 3 滿足條件,`y` 維持 0;`i=4,5` 時 `++x` 變 4、5 持續滿足,`y` 始終未遞增,故 y=0 但 `x++` 執行 3 次使 `x=5`,而 `y` 只在 `i=1,2` 時因 `++y` 遞增至 2。

錯誤選項解析

  • ② 4:錯誤。此答案誤以為 `y` 會遞增 4 次,但實際上 短路運算 機制下,當 `x>2` 後 `++y` 就不再執行,`y` 僅在 `i=1,2` 時遞增至 2。
  • ③ 6:錯誤。此答案忽略了 邏輯 OR 的短路特性,誤將 `++y` 視為每次迴圈都會執行。
  • ④ 8:錯誤。此答案完全未考慮 短路運算子 `||` 的行為,假設 `++y` 在 6 次迴圈中都會執行。
Learning Tip

"短路運算子 `||` 與 `&&` 是 Java 檢定常考陷阱:`||` 左側為 true 時右側不執行,`&&` 左側為 false 時右側不執行。本題關鍵在於追蹤 `i=1~5` 每次迭代中 `x` 與 `y` 的遞增時機,注意 `++x` 是先遞增再比較,而 `x++` 是先使用再遞增。實務上建議手動模擬迴圈執行過程以避免混淆。"

學員答題分佈

①20%
②40%
③60%
④80%

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

相似類型題目