4.1) OCJP/1Z0-851 / 2012-08-28

OCJP (1Z0-851 / 2012-08-28 / Exam B) - 42 번

kkikkodev 2015. 9. 5. 19:49



관련 이론 및 문법

(assertion 참고)

http://kkikkodev.tistory.com/108


문제 의도

주어진 Donkey 클래스를 2 번 실행시킬 건데, 첫 번째는, assertion 옵션을 켜지 않고, 실행하고, 두 번째는, assertion 옵션을 켜고 실행했을 때의 출력 결과를 고르는 문제입니다.


답안

D


풀이 방법

이 문제는 Exam A 의 35 번 문제와 거의 비슷합니다.


(Exam A / 35 번 문제 풀이 참고)

http://kkikkodev.tistory.com/109


단, 차이점은 클래스명이 Donkey2 에서 Donkey 로 바뀐점, boolean 형 변수 assertsOn 이 true 가 아닌, false 로 초기화 되어 있다는 점입니다.


먼저, assert 옵션이 OFF 상태라면, assert 문장이 실행되지 않고, 바로 if 문으로 가게 되어, 아무것도 출력하지 않게 됩니다. (assertsOn 이 false 이기 때문에)


assert 옵션이 ON 상태라면, assert 문장의 조건식을 체크하는데, assertsOn 이 false 이므로, 조건식의 결과 또한 false 가 되어, 우측의 assertsOn = true 문장이 실행됩니다. assertsOn 이 true 로 바뀌게 되고, AssertionError 가 발생되어 화면에 에러 상황이 출력되면서, assertsOn 의 값 (true) 또한 함께 출력되게 됩니다.


따라서, 답안은 D 가 됩니다.