民國106年 第2梯次 電腦軟體設計(JAVA)乙級 學科
第54題
針對以下J A V A 程式,將執行期斷言( a s s e r t i o n ) 開啟,執行後下列何者為其輸出?
題目
針對以下J A V A 程式,將執行期斷言( a s s e r t i o n ) 開啟,執行後下列何者為其輸出?
- (1) i = 10
- (2) i = 9
- (3) i = 11
- (4) E x c e p t i o n i n t h r e a d " m a i n " j a v a . l a n g . A s s e r t i o n E r r o r : i = 10 a t A s s . m a i n ( A s s . j a v a : 6 )
官方答案
(4) E x c e p t i o n i n t h r e a d " m a i n " j a v a . l a n g . A s s e r t i o n E r r o r : i = 10 a t A s s . m a i n ( A s s . j a v a : 6 )
解析
執行時加上 -ea(enableassertions)參數,assert 述句才會生效。程式中斷言條件 i == 9 不成立(當時 i 的值為 10),JVM 便拋出 AssertionError,並附上冒號後的訊息「i = 10」,堆疊追蹤指出發生在 Ass.main 第 6 行,程式隨即終止。若未開啟斷言,assert 會被整段略過,才可能只印出 i 的值;選項1~3 都忽略了斷言失敗會中斷程式。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。