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

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

kkikkodev 2015. 9. 10. 12:59



관련 이론 및 문법

(Short Circuit Evaluation 참고)

http://kkikkodev.tistory.com/284


문제 의도

주어진 소스코드를 컴파일하여 실행한 결과를 고르는 문제입니다.


답안

D


풀이 방법

소스코드는 Test 클래스가 정의되어 있고, 그 안에 main 메소드만 있습니다.


실행하면, 13 ~ 15 라인에서, int 형 변수 x 에 5 를 저장하고, boolean 형 변수 b1 에 true 를 저장하고, boolean 형 변수 b2 에 false 를 저장합니다. 17 라인인 if ((x == 4) && !b2) 를 조건 검사하면, 현재 x 가 5 이기 때문에, x == 4 문이 false 가 되고, Short circuit evaluation 에 의해, && 연산자 우측에 있는 !b2 문을 확인조차 하지 않고 건너 뜁니다. 따라서, if 문 조건 검사의 결과가 false 가 되어 18 라인을 실행하지 않고 19 라인으로 건너뜁니다. 그리고 19 라인의 "2 " 를 화면에 출력합니다. 그 다음, 20 라인의 if ((b2 = true) && b1) 조건 검사를 체크하는데, 먼저, b2 = true 를 실행하여 b2 에 true 를 넣고, 그 b2 가 true 이기 때문에, && 우측의 b1 조건을 살펴보면 마찬가지로 b1 도 true 이기 때문에, 결과적으로 true && true 가 되어 전체적으로 조건 체크 결과가 true 가 되어 21 라인이 실행됩니다. 따라서 "3 " 이 출력됩니다.


결과적으로 "2 3 " 이 출력되어 답안은 D 가 됩니다.