Skip to content

문제 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: x1이 되고 그 값 1을 사용
  • ++y: y0이 되고 그 값 0을 사용
  • = 1 + 0 = 1case 1 실행

이 시점에서 x = 1, y = 0입니다.

2) case 1 실행

  • z = (x * y) <= 0 ? 1 : -1;
  • x * y = 1 × 0 = 0, 그리고 0 <= 0은 참이므로 z = 1.
x=1,y=0,z=1

👉 실습(C++)에서 확인하기

PDF