반복문

PJPJ·2026년 1월 17일

Coding_Test

목록 보기
1/8

for문 range()

[구조 설명]

  • range(시작, 끝, 간격) 형태로 사용합니다.

  • 시작 (len(food)-1): 반복을 시작할 숫자입니다.

    	리스트 food의 길이가 4라면, 3부터 시작합니다.
    
    	(리스트의 마지막 인덱스를 의미합니다)
  • 끝 (0): 반복을 멈출 기준 숫자입니다.

    	주의할 점: 이 숫자는 포함되지 않습니다.
    
    	즉, 0 바로 앞인 1까지만 반복하고 멈춥니다.
  • 간격 (-1): 숫자가 변하는 크기입니다.

    	-1이므로 숫자가 1씩 줄어듭니다. (예: 3 → 2 → 1)

[예시 (food 리스트 길이가 4일 때)]

  • len(food)가 4라면, range(3, 0, -1)이 됩니다.
for i in range(3, 0, -1):
    print(i)
  • 실행 결과:
3
2
1

for-else, while-else

파이썬에는 for-else, while-else라는 특별한 문법이 있어서, 반복문이 break 없이 끝까지 실행되면 else 블록이 동작합니다.

while-else 동작 원리

while 조건:
    # 반복 코드
    if 특정_조건:
        break     # ← break 만나면 else 실행 안됨
    
else:         # ← while이 break 없이 끝날 때만 실행
    # "반복문이 정상 종료"됐을 때 실행할 코드

예시 코드에서:

while i < len(s):                    # 내부 while문
    if s[i] == x:
        x_count += 1
    else:
        other_count += 1
    
    i += 1
    
    if x_count == other_count:       # 조건 만족!
        answer += 1
        break                        # ← break → else 실행 안됨
    
else:  # ← 이 else는 위의 while에 붙음!
    answer += 1                    # "조건 미달성 + 문자열 끝"일 때 실행

다른 예시로 이해하기

# 리스트에서 5 찾기
numbers = [1, 3, 7, 9]

for num in numbers:
    if num == 5:
        print("5 발견!")
        break
else:  # break 없이 끝나면 실행
    print("5를 찾을 수 없음")  # 이게 출력됨

문자열 나누기에서 else는 "반복문이 끝까지 돌았는데도 분리 조건(x_count == other_count)을 만족하지 못했다" → "남은 문자열을 마지막 조각으로 분리"하는 역할을 합니다.


0개의 댓글