코딩일기/자격증
[정보처리기사] [Java] 논리 연산자를 활용한 조건문 분석 | 연산자 우선순위 | 정보처리기사 실기 기출문제
jhy_2023
2025. 3. 23. 18:44
728x90
반응형
2021년 3회 정보처리기사 실기 기출문제
문제
다음 Java 코드의 실행 결과를 구하시오.
public class LogicTest {
public static void main(String[] args) {
int a = 3, b = 4, c = 3, d = 5;
if ((a == 2 || a == c) && !(c > d) && (1 == b ^ c != d)) {
a = b + c;
if (7 == b || c != a) {
System.out.println(a);
} else {
System.out.println(b);
}
} else {
a = c + d;
if (7 == c && d != a) {
System.out.println(a);
} else {
System.out.println(d);
}
}
}
}
정답
7
반응형
해설
📌 변수 선언 및 초기화
int a = 3, b = 4, c = 3, d = 5;
- a = 3, b = 4, c = 3, d = 5로 초기화됨.
📌 첫 번째 if 조건
if ((a == 2 || a == c) && !(c > d) && (1 == b ^ c != d))
- 연산자 우선순위에 따라 괄호 먼저 처리
1️⃣ 첫 번째 괄호
(a == 2 || a == c)
- 연산자 우선순위에 따라 관계 연산자 ==가 먼저 계산되고, 그 후 논리 연산자 ||가 처리됩니다.
- 관계 연산자
- a == 2 → false(0)
- a == c → 3 == 3 → true(1)
- 논리 연산자
- || (OR 연산자) 사용 → false || true → true
- 관계 연산자
- 따라서 (a == 2 | a == c)는 true(1)입니다.
2️⃣ 두 번째 괄호
!(c > d)
- 연산자 우선순위에 따라 괄호에 있는 c > d가 계산되고, 그 후에 논리 부정 연산자 !가 적용됩니다.
- 관계 연산자
- c = 3, d = 5이므로 c > d는 false(0)
- 논리 부정 연산자
- !(false)는 true(1)
- 따라서 !(c > d)는 true(1)입니다.
- 관계 연산자
3️⃣ 세 번째 괄호
(1 == b ^ c != d)
- 연산자 우선순위에 따라 우선 1 == b와 c != d를 계산한 후, 비트 XOR 연산자 ^를 적용합니다.
- 관계 연산자
- 1 == b: b = 4이므로 1 == 4는 false(0)
- c != d: c = 3, d = 5이므로 3 != 5는 true(1)
- 비트 연산자
- 비트 XOR 연산자 :서로 다르면 true, 같으면 false
- false ^ true = true(1)
- 따라서 (1 == b ^ c != d)는 true(1)입니다.
- 관계 연산자
4️⃣ 전체 조건 결합
1 & 1 & 1
- 이제 전체 조건을 & (AND) 연산자로 결합합니다.
- 1 & 1 = 1
- 1 & 1 = 1
- 결과적으로 첫 번째 if 조건은 true → 1로 평가됩니다.
a = b + c; // a = 4 + 3 = 7
if (7 == b ^ c != a) {
System.out.println(a);
} else {
System.out.println(b);
}
- 따라서 if 문 안의 코드 블록이 실행됩니다.
728x90
📌두 번째 if 조건 분석
if (7 == b || c != a)
- 연산자 우선순위에 따라 관계 연산자가 먼저 계산되고, 그 후 논리 연산자 ||가 처리됩니다.
- 관계 연산자
- 7 == b → false
- c != a → 3 != 7 → true
- 논리 연산자
- || (OR 연산자) 사용 → false || true → true
- 관계 연산자
if (7 == b || c != a) {
System.out.println(a);
} else {
System.out.println(b);
}
- if 문이 true이므로 System.out.println(a); 실행 → 7 출력
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
728x90
반응형