Skip to content

문제 11 · break가 있는 while 루프

문제 11 [2점]

아래 코드의 num, sum은 어떤 값을 갖는지 쓰시오.

cpp
int num = 20, sum = 0;
while (num > 0) {
    if (!((num % 4 == 0) || (num % 6 == 0)))
        break;
    sum += num;
    num--;
}
풀이 및 해설

num4의 배수 또는 6의 배수인 동안만 누적하고, 그렇지 않은 수를 만나면 break로 즉시 종료합니다.

num4의 배수 or 6의 배수?동작
20참 (20 = 4×5)sum = 20, num → 19
19거짓break
  • num = 20: (20%4==0) || (20%6==0) = 참 → !참 = falsebreak 안 함. sum = 20, num = 19.
  • num = 19: 19%4 = 3, 19%6 = 1 이므로 둘 다 거짓 → !false = truebreak.

루프를 빠져나올 때 num = 19, sum = 20.

num=19,sum=20

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

PDF