모두CBT

21-3아래 Java 프로그램을 실행했을 때 출력되는 값을 적으시오.p… | 2021년 정보처리기사실기 3회차 기출문제 상세 페이지

7

21-3

아래 Java 프로그램을 실행했을 때 출력되는 값을 적으시오.

public class Main {
    public static void main(String[] args) {
        int p = 6, q = 2, r = 6, s = 9;
        if ((p == 4 | p == r) & (q < s) & (q == 3 ^ r != s)) {
            p = q * r;
            if (12 == p ^ q > r)
                System.out.println(p);
            else
                System.out.println(q);
        } else {
            p = r + s;
            if (15 != p | r > s)
                System.out.println(p);
            else
                System.out.println(s);
        }
    }
}
해설

12


[해설]

boolean에 쓴 |·&·^는 단락 평가 없이 양쪽을 모두 계산하며, ^는 두 값이 다를 때만 true인 XOR이다. 비교 연산자가 이 논리 연산자들에 앞서 먼저 계산된다.

바깥 if의 세 항은 모두 참이다.
(p == 4 | p == r) = (false | true) = true
(q < s) = (2 < 9) = true
(q == 3 ^ r != s) = (false ^ true) = true

따라서 p = q × r = 2 × 6 = 12가 된다.
12 == p ^ q > r = true ^ false = true → p 출력 = 12

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.