[Python] 파이썬 while문 사용법 & 예제 총정리

파이썬의 while문은 반복문의 한 종류로써 조건이 참(True)인 동안 반복적으로 코드 블록을 실행합니다. 반복적으로 블록을 실행하는 것을 보고 일반적으로 "루프를 돈다"라고 표현을 합니다. while은 작성할 때 조건만 있으면 생성이 가능하기 때문에 루프의 실행 횟수가 불확실할 때는 while문이 사용하기에 적합합니다. 예를 들자면 사용자의 입력을 기다리거나 어떤 조건이 충족될 때까지 루프를 실행해야 할 때가 있겠습니다.

 

 파이썬 while문 사용법 

while 조건:
    # 조건이 참일 때 실행할 코드
  • 조건은 불리언(Boolean) 값인 표현식입니다.
  • 조건이 True인 동안 루프 내의 코드가 실행됩니다.
  • 조건이 False가 되면 루프가 종료됩니다.

조건은 불리언(Boolean) 값인 표현식이며, 이 표현식이 True일 경우 루프가 계속 실행됩니다. while 루프는 조건이 False가 될 때까지 반복하여 코드를 실행하므로 조건이 True로 설정되어 있는 한 주의 주기에 계속 반복됩니다.

 

while 루프의 동작 순서

  • while 문이 실행되면 먼저 조건을 검사합니다.
  • 조건이 True이면 루프 내의 코드 블록을 실행합니다.
  • 코드 블록이 실행된 후 다시 조건을 검사하고, 조건이 여전히 True이면 코드 블록을 다시 실행합니다.
  • 이 과정을 조건이 False가 될 때까지 반복합니다.

 

while문 사용 예제

# "Hellow Wolrd!"를 3번 출력하는 프로그램
i = 0
while i < 3:
    print("Hellow Wolrd!")
    i+=1

이 예제는 조건으로 사용되는 변수 i가 3보다 작을 때 "Hellow World!" 문자열을 출력합니다. 블록 마지막에는 변수 i를 +1 하여 세 번째 루프뒤에는 i를 4로 만들어 조건을 False로 만듭니다. 위와 같이 while 루프를 사용하면 조건을 만족하는 동안 반복 작업을 수행할 수 있으므로 많은 종류의 작업에 유용합니다. 하지만 주의할 점은 조건이 항상 True가 되지 않도록 주의해야 합니다. 그렇지 않으면 무한 루프에 빠질 수 있습니다. 

 

※ 참고로 파이썬에는 ++과 같은 증감연산자가 없어 +=1 이런 식으로 작성해주셔야 합니다.

 

while문을 사용하여 무한루프 만들기

while True:
    print("무한루프")

때로는 무한루프를 만들어줘야 하는 경우도 있을 수 있습니다. while문을 사용하면 무한 루프를 만들기 쉬운데요. 위와 같이 while문의 조건에 True라고 넣어주시면 무한루프를 쉽게 만들 수 있습니다. 

 


 

 제어문(break, continue)을 사용하여 루프 제어하기 

while문에서 제어문 break와 continue를 사용하면 루프를 유연하게 제어할 수 있습니다. break는 루프를 완전히 종료하고 루프 밖의 코드로 이동하며, continue는 현재 반복을 중단하고 다음 반복으로 넘어갑니다. 

 

while 루프 강제 탈출(break)

# 5까지만 출력하는 프로그램
num = 0
while True:
    num += 1
    if num > 5:
        break  # 짝수일 때는 다음 반복으로 건너뜁니다.
    print(num)

무한루프를 돌고 있더라도 break를 만나면 while문은 즉시 종료됩니다. 위의 예제에서는 변수 num이 5보다 큰 숫자가 되었을 때 프로그램을 종료하여 5까지만 출력된 것을 보실 수 있습니다.

 

while 루프 건너뛰기(continue)

# 홀수만 출력하는 프로그램
num = 0
while num < 10:
    num += 1
    if num % 2 == 0:
        continue  # 짝수일 때는 다음 반복으로 건너뜁니다.
    print(num)

위 예제에서 변수 num이 홀수라면 출력하고 짝수라면 continue를 만나 현재 반복을 건너뛰고 다음 반복으로 진행되어 결론적으로 홀수만 출력된 것을 보실 수 있습니다.

 


 

 파이썬 do while문처럼 만들기 

파이썬에는 C나 Java처럼 다른 프로그래밍 언어에서 있는 "do-while"문이 존재하지 않습니다. 하지만 파이썬에서도 "while" 루프에 위에서 봤던 break를 사용하여 비슷한 동작을 구현할 수 있는데요. "do-while" 루프는 일단 루프 블록의 코드를 실행하고 나서 조건을 검사하기 때문에 루프 내용을 최소한 한 번은 실행하는 특징이 있습니다. 이것은 파이썬 "while" 루프로 다음과 같이 구현할 수 있겠습니다.

while True:
    # 루프 내용 실행
    # ...

    # 조건 검사
    if 조건:
        break

위 코드에서 while True:는 항상 참인 무한 루프를 만듭니다. 그런 다음 루프 내용이 실행되고, if not 조건: 문을 사용하여 원하는 조건을 검사합니다. 조건이 충족되지 않으면 break 문을 사용하여 루프를 종료합니다. 예를 들어, 1에서 5까지의 숫자를 출력하면서 루프 내용을 최소한 한 번 실행하는 "do-while" 루프를 파이썬에서 구현하면 다음과 같습니다

 

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

이 코드는 count 변수를 출력하고 1씩 증가시키며, count가 5보다 크면 루프를 종료합니다. 이것은 다음과 같이 출력됩니다. 이렇게 하면 "do-while" 루프와 유사한 동작을 파이썬에서 구현할 수 있습니다. "do-while" 루프의 동작을 파이썬에서 재현하는 보편적인 방법입니다.

댓글

Designed by JB FACTORY