Q86.
一Java 程式片段如下,執行後x 值為何?
電腦軟體設計(JAVA) · 乙級 · Java · Q86
難易度分析
3 / 5
本題要求考生精確掌握運算子的執行順序以及邏輯運算的短路特性,需透過追蹤變數在迴圈中的狀態變化才能得出正確結果,具備一定的邏輯推演複雜度。
正確答案:①5
① 5:程式碼中 x 初始值為 0,迴圈執行 5 次(i=1~5)。關鍵在於 後置遞增運算子 (x++) 會先比較再遞增,且 && 短路運算 特性使得當 (x++>2) 為 false 時,(y++) 不會被執行。i=1~3 時 x++>2 皆為 false(x 遞增為 1,2,3),i=4 時 (3>2) 為 true(x=4)但 (y++>2) 為 false(y=0>2 不成立,y 遞增為 1),i=5 時 (4>2) 為 true(x=5)但 (y++>2) 為 false(y=1>2 不成立,y 遞增為 2)。最終 x=5。
錯誤選項解析
- ② 6:答案 6 錯誤,可能誤以為 && 不會短路 或誤算遞增次數。實際上 i=1~3 時 y++ 因短路未被執行,x 僅在每次迴圈遞增一次,共遞增 5 次。
- ③ 7:答案 7 錯誤,可能誤將 x++ 視為前置遞增 (++x) 或誤認為 if 條件成立時 x++ 會額外執行。但實際上 if 內的 x++ 從未執行,因為 && 右側條件始終為 false。
- ④ 8:答案 8 錯誤,可能完全忽略 短路運算 特性,誤以為每次迴圈 x 和 y 都會遞增。正確理解應是 y 僅在 i=4,5 時遞增,而 x 在每次迴圈固定遞增一次。
Learning Tip
"本題核心考點為 後置遞增運算子 (x++) 的求值順序 與 && 短路運算 特性。常考陷阱:(1) 混淆 x++(先使用後遞增) 與 ++x(先遞增後使用);(2) 忽略 && 左側為 false 時右側不執行 的短路行為,導致誤算 y 的遞增次數;(3) 誤以為 if 區塊內的 x++ 會被執行。實務上應逐行追蹤變數狀態,特別注意條件式中的副作用運算。"
學員答題分佈
①50%
②60%
③70%
④80%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!