홀수만 더하고 반복문을 빠져나오다(Chatgpt)

2026. 7. 11. 15:20파이썬

홀수만 더하고 반복문을 빠져나오다

while 조건, 누적 합계, 반복 종료 후 변수값 추적


1. 문제

다음 Python 프로그램을 분석하여 실행 결과를 작성하시오.

i, hap = 1, 0

while i <= 6:
    hap += i
    i += 2

print(f"i={i}, hap={hap}")

2. 주요 포인트

이 문제에서는 다음 내용을 확인해야 합니다.

① 여러 변수에 값 대입

i, hap = 1, 0

두 변수에 각각 값을 저장합니다.

i = 1
hap = 0

② while 반복 조건

while i <= 6:

변수 i가 6보다 작거나 같은 동안 반복합니다.

조건이 거짓이 되면 반복문을 종료합니다.


③ 누적 연산자 +=

hap += i

다음 코드와 같은 의미입니다.

hap = hap + i

현재 hap에 i의 값을 계속 더합니다.


④ i가 2씩 증가

i += 2

다음 코드와 같습니다.

i = i + 2

i는 다음과 같이 변합니다.

1 → 3 → 5 → 7

따라서 hap에는 홀수인 1, 3, 5가 더해집니다.


⑤ f-string 출력

print(f"i={i}, hap={hap}")

중괄호 안에 있는 변수의 실제 값을 문자열에 넣어 출력합니다.


3. 풀이

3-1. 초기값 확인

i, hap = 1, 0

반복문 실행 전 변수의 값은 다음과 같습니다.

i = 1
hap = 0

3-2. 첫 번째 반복

현재 i의 값은 1입니다.

1 <= 6 → 참

따라서 반복문을 실행합니다.

hap += i
hap = 0 + 1
hap = 1

다음으로 i에 2를 더합니다.

i += 2
i = 1 + 2
i = 3

첫 번째 반복 후:

i = 3
hap = 1

3-3. 두 번째 반복

현재 i의 값은 3입니다.

3 <= 6 → 참

누적 합계를 계산합니다.

hap = 1 + 3
hap = 4

i에 2를 더합니다.

i = 3 + 2
i = 5

두 번째 반복 후:

i = 5
hap = 4

3-4. 세 번째 반복

현재 i의 값은 5입니다.

5 <= 6 → 참

누적 합계를 계산합니다.

hap = 4 + 5
hap = 9

i에 2를 더합니다.

i = 5 + 2
i = 7

세 번째 반복 후:

i = 7
hap = 9

3-5. 반복 조건 재확인

현재 i는 7입니다.

7 <= 6 → 거짓

조건이 거짓이므로 반복문을 종료합니다.

반복문이 종료된 후에도 i의 값은 다시 5로 돌아가지 않습니다.
마지막에 증가한 값인 7이 그대로 유지됩니다.


4. 반복 과정 한눈에 보기

구분반복 전 i조건 i <= 6더한 값반복 후 hap반복 후 i

초기값 1     0 1
1회차 1 1 1 3
2회차 3 3 4 5
3회차 5 5 9 7
조건 확인 7 거짓 없음 9 7

누적된 값은 다음과 같습니다.

1 + 3 + 5 = 9

5. 최종 출력문

print(f"i={i}, hap={hap}")

반복문이 끝난 후 변수의 값은 다음과 같습니다.

i = 7
hap = 9

이를 f-string에 대입하면 다음과 같습니다.

print(f"i={7}, hap={9}")

6. 정답

i=7, hap=9

7. 시험에서 주의할 부분

6은 합계에 포함되지 않습니다

반복 조건은 다음과 같습니다.

while i <= 6:

그러나 i는 2씩 증가하기 때문에 다음 값만 가집니다.

1, 3, 5, 7

i가 정확히 6이 되는 경우는 없습니다.

따라서 합계는 다음과 같습니다.

1 + 3 + 5 = 9

반복 종료 후 i는 7입니다

세 번째 반복에서 i가 5일 때 반복문이 실행됩니다.

반복문 내부에서 다음 코드가 실행됩니다.

i += 2

따라서 i는 7이 된 후 조건을 다시 검사합니다.

7 <= 6 → 거짓

최종 i 값은 5가 아니라 7입니다.


8. 시험 풀이 요약

i는 1에서 시작하여 반복할 때마다 2씩 증가하므로
1, 3, 5가 반복문에서 사용된다.

hap에는 1, 3, 5가 차례로 누적되어
1 + 3 + 5 = 9가 된다.

세 번째 반복 후 i는 7이 되고,
7 <= 6이 거짓이므로 반복문이 종료된다.

따라서 출력 결과는 다음과 같다.

i=7, hap=9