문제 9 · switch와 삼항 연산자
문제 9 [2점]
아래 코드의 x, y, z는 어떤 값을 갖는지 쓰시오.
cpp
int x = 2, y = -1, z;
switch (--x + ++y) {
case 0: z = x == 1 ? 1 : -1; break;
case 1: z = (x * y) <= 0 ? 1 : -1; break;
default: z = y > -1 ? 1 : -1;
}풀이 및 해설
1) switch 조건 계산
--x:x가1이 되고 그 값1을 사용++y:y가0이 되고 그 값0을 사용- 합
= 1 + 0 = 1→case 1실행
이 시점에서 x = 1, y = 0입니다.
2) case 1 실행
z = (x * y) <= 0 ? 1 : -1;x * y = 1 × 0 = 0, 그리고0 <= 0은 참이므로z = 1.