반복문 (for, while) 이해하기

3 minute read

5강: 반복문 (for, while) 이해하기 - 코딩의 마법 나라 여행하기

안녕하세요, 코딩 초보 친구들! 🌟 오늘은 코딩의 마법 나라에서 가장 신나는 모험 중 하나인 반복문에 대해 함께 탐험해볼게요. 반복문은 마치 마법의 시계 같아요. 한 번 세팅하면 정해진 시간 동안 계속해서 마법을 불러일으키는 것처럼, 코드도 원하는 작업을 여러 번 반복할 수 있게 해주죠! 😎

🧭 반복문의 핵심: 왜 필요할까?

반복문이란 특정 조건이 만족될 때까지 코드 블록을 여러 번 실행하는 구조예요. 왜 필요할까요? 생각해보세요:

  • 작업 자동화: 매일 해야 하는 일들을 컴퓨터가 대신 처리할 수 있게 해줘요.
  • 데이터 처리: 대량의 데이터를 효율적으로 다룰 수 있어요. 마치 큰 장바구니를 한 번에 옮기는 것처럼요!
  • 사용자 친화적 인터페이스: 게임이나 앱에서 사용자가 입력할 때마다 반응하는 기능 구현!

🚀 반복문의 종류: for 문과 while

1. for 문: 순서대로 반복하기

for 문은 리스트나 범위를 기반으로 반복을 진행해요. 마치 시간표처럼 정확한 횟수만큼 작동하는 마법의 시계 같죠!

예제 1: 숫자 출력하기

# 1부터 5까지 숫자를 출력해보자!
for number in range(1, 6):  # range(1, 6)은 1부터 5까지의 숫자 리스트를 생성
    print(number)  # 각 숫자를 출력

# 코드 설명:
# - `range(1, 6)`은 1부터 시작해서 5까지 (6은 포함하지 않음) 숫자 리스트를 만듭니다.
# - `for number in range(...)`은 각 숫자를 순차적으로 `number` 변수에 할당합니다.
# - `print(number)`는 그 숫자를 화면에 찍어줍니다!

예제 2: 리스트 요소 처리하기

# 과일 리스트를 만들고 각 과일 이름 출력하기
fruits = ["사과", "바나나", "오렌지"]
for fruit in fruits:
    print(f"나는 {fruit}를 좋아해!")  # 각 과일에 대해 메시지 출력

# 코드 설명:
# - `fruits` 리스트의 각 요소를 `fruit` 변수에 순차적으로 할당합니다.
# - `print` 함수를 이용해 각 과일에 대한 메시지를 출력합니다.
2. while 문: 조건에 따른 반복

while 문은 조건이 참일 때까지 코드를 반복하는 마법의 거울 같아요. 상황에 따라 유연하게 작동할 수 있어요!

예제 3: 사용자 입력 반복

# 사용자가 "종료"를 입력할 때까지 숫자를 입력받기
input_value = ""
while input_value.lower() != "종료":  # "종료"를 입력할 때까지 반복
    user_input = input("숫자를 입력하세요 (종료하려면 '종료'): ")
    if user_input.lower() == "종료":
        input_value = user_input  # 종료 조건을 만족시키기 위해 직접 할당
    else:
        try:
            number = int(user_input)  # 입력이 숫자인지 확인
            print(f"입력하신 숫자는 {number}입니다!")
        except ValueError:
            print("올바른 숫자를 입력해주세요!")

# 코드 설명:
# - `while` 루프는 `input_value`가 "종료"가 아닐 때까지 계속 실행됩니다.
# - 사용자 입력을 받아 숫자인지 확인하고 출력하거나 오류 메시지를 표시합니다.
# - `try-except` 블록은 입력이 숫자가 아닌 경우 예외 처리를 해줍니다.

예제 4: 카운터 게임

# 카운터 게임: 숫자 맞추기 게임
import random

random_number = random.randint(1, 10)  # 1부터 10 사이의 랜덤 숫자 생성
attempts = 0  # 시도 횟수 초기화

while attempts < 3:  # 최대 3번 시도
    guess = int(input(f"{random_number}를 맞춰보세요! 시도 횟수: {attempts + 1}"))
    attempts += 1  # 시도 횟수 증가
    
    if guess == random_number:
        print("축하합니다! 정답을 맞추셨어요!")
        break  # 정답 맞추면 루프 종료
    elif guess < random_number:
        print("더 큰 숫자를 시도해보세요!")
    else:
        print("더 작은 숫자를 시도해보세요!")

# 코드 설명:
# - `random.randint(1, 10)`으로 랜덤 숫자 생성
# - `while attempts < 3` 루프는 최대 3번 시도할 수 있게 합니다.
# - 사용자 입력과 정답 비교를 통해 피드백 제공
# - `break`를 사용해 정답을 맞추면 루프를 종료합니다.

💡 초보자 폭풍 질문! 🚀

질문 1: for 문과 while 문 중 어떤 상황에서는 하나가 더 유용할까요?

답변: for 문은 주로 정해진 횟수나 범위를 반복해야 할 때 유용해요. 예를 들어, 배열의 각 요소를 처리할 때 딱 맞는 도구죠! 반면 while 문은 동적 조건이 필요할 때 적합해요. 예를 들어, 사용자의 입력에 따라 반복 횟수가 달라질 때 유용합니다.

질문 2: for 문에서 range() 함수의 파라미터는 어떻게 작동하나요?

답변: range() 함수는 시작 숫자부터 끝 숫자 이전까지의 숫자를 리스트로 만들어줘요. 예를 들어, range(1, 6)은 1부터 5까지의 숫자 리스트 [1, 2, 3, 4, 5]를 생성해요. 끝 숫자는 포함되지 않아요!

🛡️ 실무주의보: 주의사항

  • 무한 루프 방지: while 문에서 조건이 항상 참인 경우 무한 루프에 빠질 수 있으니 주의하세요! 적절히 탈출 조건을 설정해야 합니다.
  • 변수 범위 관리: 반복문 내에서 변수를 다룰 때, 특히 중첩 반복문에서는 변수의 상태를 잘 추적해야 합니다. 혼란을 피하려면 변수 명명 규칙을 일관되게 유지하세요!

마무리

반복문은 코딩에서 정말 강력한 도구예요! 정확히 이해하고 활용하면 복잡한 문제도 단순화할 수 있어요. 오늘 배운 내용을 바탕으로 다양한 시나리오에서 반복문을 활용해보세요. 당신의 코딩 여정이 점점 더 신나는 모험이 되길 바라요! 🚀🌟

이제 당신도 마법의 시계마법의 거울을 자유자재로 다루는 코딩 마스터가 되어가고 있답니다! 😎💪

다음 강의에서 또 만나요! 그때까지 연습 많이 해보세요! 💪💖



<hr>

💬 궁금한 점이 있다면 자유롭게 댓글을 남겨주세요! (AI 비서가 답변해 드립니다 🤖)

Categories:

Updated: