티스토리 뷰

파이썬에서 while문은 조건이 참일 때 특정 코드를 반복 실행하는 제어 구조입니다. 반복문의 대표적인 형태로, 루프의 종료 조건을 명시하지 않으면 무한히 실행될 수 있습니다.

 

이번 글에서는 while문의 기본 사용법과 다양한 예제를 통해 파이썬의 반복문을 이해해 보겠습니다.

 

👇👇👇 자세히보기 👇👇👇 

영상 강의 바로가기

while문의 기본 구조

파이썬의 while문은 다음과 같은 구조로 이루어져 있습니다:

while 조건:
    실행할 코드
  • 조건: 불리언 표현식으로, True일 경우 코드 블록이 실행되고, False가 되면 루프가 종료됩니다.
  • 실행할 코드: 조건이 참일 때 반복적으로 실행되는 코드입니다.

간단한 예제: 1부터 5까지 출력하기

i = 1
while i <= 5:
    print(i)
    i += 1

위 코드는 i가 5보다 작거나 같을 때까지 i를 출력하고, 매번 i에 1을 더합니다. 결과적으로 1부터 5까지의 숫자가 출력됩니다.

다양한 while문 예제

1. 사용자 입력을 통한 반복 제어

사용자에게 입력을 받아 특정 조건이 충족될 때까지 반복하는 프로그램을 만들 수 있습니다. 아래 예제는 사용자가 'exit'를 입력할 때까지 계속해서 입력을 받습니다.

while True:
    user_input = input("종료하려면 'exit'를 입력하세요: ")
    if user_input.lower() == 'exit':
        print("프로그램을 종료합니다.")
        break
    else:
        print(f"입력한 내용: {user_input}")

2. 무한 루프와 break

무한 루프는 특정 조건이 충족될 때까지 계속해서 반복되는 루프입니다. 이를 종료하려면 break을 사용해야 합니다.

i = 0
while True:
    i += 1
    if i > 5:
        break
    print(i)

위 코드는 i가 5보다 커지면 루프를 종료하고, 그 전까지는 i를 출력합니다.

3. 짝수만 출력하기 (continue 문 사용)

continue은 현재 반복을 건너뛰고 다음 반복으로 넘어가게 합니다. 이를 활용하면 짝수만 출력하는 코드를 만들 수 있습니다.

num = 0
while num < 10:
    num += 1
    if num % 2 != 0:
        continue
    print(num)

위 코드는 홀수는 건너뛰고 짝수만 출력하게 됩니다.

4. 사용자로부터 숫자를 입력받아 합계 구하기

사용자가 입력한 숫자까지의 합계를 구하는 프로그램도 while문으로 쉽게 구현할 수 있습니다.

sum = 0
i = 1
number = int(input("숫자를 입력하세요: "))
while i <= number:
    sum += i
    i += 1
print(f"1부터 {number}까지의 합은 {sum}입니다.")

사용자가 입력한 숫자까지의 합계를 계산하여 출력합니다.

5. 무한 루프를 활용한 퀴즈 프로그램

무한 루프를 활용하여 사용자가 정답을 맞출 때까지 계속해서 질문을 던지는 퀴즈 프로그램을 만들 수도 있습니다.

while True:
    answer = input("선생님이 좋아하는 과일은 무엇일까요? ")
    if answer == "딸기":
        print("정답입니다!")
        break
    else:
        print("틀렸습니다. 다시 시도하세요.")

정답인 '딸기'를 맞출 때까지 퀴즈가 계속됩니다.

while문의 제어문: break, continue, 그리고 else

파이썬의 while문은 제어문인 break, continue, 그리고 else와 함께 사용할 수 있어 유연하게 반복을 제어할 수 있습니다.

break: 루프 강제 종료

break은 현재 실행 중인 루프를 즉시 종료합니다. 위에서 본 예제처럼 무한 루프에서 특정 조건에 도달했을 때 루프를 종료하는 데 유용합니다.

continue: 현재 반복 건너뛰기

continue은 현재 실행 중인 반복의 나머지 부분을 건너뛰고 다음 반복으로 넘어갑니다. 이를 통해 특정 조건에서만 코드를 실행하거나, 특정 조건에서는 실행하지 않도록 할 수 있습니다.

else: 정상적으로 종료된 후 실행

파이썬의 while문else 절을 가질 수 있습니다. 이는 while문이 정상적으로 종료되었을 때 실행됩니다. 단, break으로 인해 루프가 종료되면 else 절은 실행되지 않습니다.

i = 0
while i < 5:
    print(i)
    i += 1
else:
    print("루프가 정상적으로 종료되었습니다.")

위 코드는 루프가 정상적으로 종료된 후 "루프가 정상적으로 종료되었습니다."라는 메시지를 출력합니다.

파이썬에서 do-while문 구현하기

파이썬에는 C나 Java와 같은 언어에서 제공하는 do-while문이 존재하지 않습니다. 하지만 파이썬에서도 비슷한 동작을 구현할 수 있습니다. 일반적으로 do-while문은 최소 한 번은 코드 블록을 실행하고 나서 조건을 검사합니다. 이를 파이썬에서는 다음과 같이 구현할 수 있습니다:

count = 0
while True:
    print(count)
    count += 1
    if count > 5:
        break

위 코드는 최소 한 번은 블록 내의 코드를 실행하고, 이후에 조건을 검사하여 루프를 종료합니다.

결론

파이썬의 while문은 매우 유용한 반복 제어 구조로, 다양한 상황에서 활용할 수 있습니다. 특히 조건에 따라 반복 횟수가 달라질 때 유용하며, 무한 루프와 같은 고급 기능도 쉽게 구현할 수 있습니다. 또한, break, continue, 그리고 else와 같은 제어문과 함께 사용하면 더욱 유연하게 반복 작업을 처리할 수 있습니다.

 

파이썬 프로그래밍에서 while문은 필수적으로 이해해야 할 중요한 개념 중 하나입니다. 다양한 예제를 통해 while문의 동작 방식을 익히고, 실전에서 활용해 보세요.

 

자주 묻는 질문 (FAQ)

Q1: while문과 for문의 차이점은 무엇인가요?

A1: for문은 주로 시퀀스(리스트, 튜플 등)의 요소를 순회할 때 사용되며, 반복 횟수가 고정되어 있을 때 적합합니다. 반면에 while문은 조건에 따라 반복 횟수가 달라질 수 있으며, 주로 조건 기반의 반복 작업에 적합합니다.

Q2: 무한 루프에 빠졌을 때 어떻게 해야 하나요?

A2: 무한 루프에 빠졌다면 키보드에서 Ctrl + C를 눌러 강제로 프로그램을 중단시킬 수 있습니다.

Q3: 파이썬에 do-while문이 없나요?

A3: 네, 파이썬에는 do-while 구조가 없습니다. 하지만 while True와 break 문을 사용하여 비슷한 동작을 구현할 수 있습니다.

Q4: continue와 break의 차이는 무엇인가요?

A4: continue는 현재 반복만 건너뛰고 다음 반복으로 넘어가며, break는 전체 루프를 즉시 종료합니다.

Q5: else 구문은 언제 사용하나요?

A5: else 구문은 while 루프가 정상적으로 종료되었을 때 실행됩니다. 만약 break로 인해 루프가 종료되면 else 구문은 실행되지 않습니다.

반응형