Original article: Python Do While – Loop Example

모든 현대 프로그래밍 언어에서 반복문은 유용하게 자주 쓰입니다.

반복문을 사용하면 특정한 반복 작업을 자동화할 수 있고 프로그램에 반복적인 코드를 일일이 작성하지 않아도 됩니다.

반복문은 특정 조건을 만족할 때까지 반복적으로 실행되는 명령들이 모인 것입니다. Python에서 반복문이 어떻게 동작하는지 좀 더 배워봅시다.

Python에서의 반복문

Python에 내장된 반복문으로는 크게 2가지 유형이 있습니다.

  • for 반복문
  • while 반복문

Python에서 while 반복문은 어떻게 만들 수 있고 어떻게 동작하는지 집중적으로 학습해봅시다.

Python에서 while 문은 무엇일까요?

Python의 while 문의 일반적인 문법은 다음과 같습니다:

while 조건:
    반복문의 내용에 해당하는 이 코드를 실행함

반복문은 조건이 참인 동안 해당되는 코드를 실행할 것입니다. 조건이 더 이상 참이 아닐 때까지 실행시키고자 하는 코드 모음을 계속해서 실행합니다.

반복문은 항상 실행되기 전에 우선적으로 조건을 확인합니다.

만약 조건이 참으로 판명된다면 반복문은 반복문 안에 있는 코드를 실행합니다.

예컨대 아래의 반복문은 number10보다 작을 때까지 실행됩니다.

number = 0
while number < 10:
    print(f"Number is {number}!")
    number = number + 1

출력 결과:

Number is 0!
Number is 1!
Number is 2!
Number is 3!
Number is 4!
Number is 5!
Number is 6!
Number is 7!
Number is 8!
Number is 9!

여기서 변수 number는 처음에 0으로 설정됩니다.

코드가 실행되기 전에 Python은 조건(number < 10)을 확인합니다. 조건이 참이면 출력문이 실행되고 Number is 0!이 콘솔에 출력됩니다.

number1씩 증가합니다. 다시 조건을 확인하고 조건이 참이라면 number9가 될 때까지 이 모든 과정이 반복됩니다.

Number is 9!가 출력되고 number가 증가합니다. 이제 number10이므로 더 이상 조건을 만족하지 않게 되고 이에 따라 반복문은 종결됩니다.

다음 예제에서 볼 수 있듯이 조건을 만족하지 않으면 while 문은 절대로 실행되지 않습니다.

number = 50
while number < 10 :
    print(f"Number is {number}!")

조건이 항상 False이기 때문에 반복문 안에 있는 명령은 실행되지 않습니다.

무한 반복문을 만들지 마세요

위의 예제에서 볼 수 있듯이 while 문에는 반복 주기 내내 값이 변하는 변수가 필연적으로 따라옵니다. 이 변수는 반복문을 언제 끝낼지 결정합니다.

특정 한 줄을 추가하지 않으면, 무한 반복문을 만들게 됩니다.

반복문의 변수 number가 증가하지 않고 값이 바뀌지도 않는다고 해봅시다. 그렇게 되면 변수는 처음 초기화한 후로 줄곧 0으로 남아있게 될 것이고, 조건 number < 10 역시 영원히 True가 될 것입니다. 다시 말해 반복문이 영원히 반복됩니다.

# 이 코드를 실행하지 마세요

number = 0
while number < 10:
    print(f"Number is {number}!")

출력 결과:

Number is 0!
Number is 0!
Number is 0!
Number is 0!
Number is 0!
Number is 0!
Number is 0!
...

위 코드는 끝없이 실행됩니다.

다음 코드도 마찬가지입니다.

#이 코드를 실행하지 마세요
while True:
    print("I am always true")

이런 상황에서 여러분이라면 어떻게 하시겠습니까?

반복문에서 빠져나와서 반복문을 종료시키려면 ctrl + C 를 누르세요.

do while 반복문은 무엇일까요?

다른 프로그래밍 언어에서 do while 문의 일반적인 문법은 다음과 같이 생겼습니다.

do {
  실행될 반복문 코드 블록;
  }
while(조건);

예를 들어 C 언어에서 do while 문은 아래와 같습니다.

#include <stdio.h>
 
int main(void)
 {
   int i = 10;
   do {
      printf("the value of i: %i\n", i);
      i++;
      }
  while( i < 20 );
 }

do while 문에서 독특한 점은 반복문 블록 안에 있는 코드가 적어도 1번은 실행된다는 사실입니다.

반복문 안의 코드는 한 번 실행되며 그 후에는 조건이 만족되어야 비로소 실행됩니다.

그러므로 반복문 안의 코드는 먼저 한 번 실행되고 그리고 나서 조건을 확인합니다.

만약 조건이 참으로 판명되면 반복문은 계속됩니다.

코드가 최소 한 번은 실행되도록 하고 싶을 때 do while 문은 꽤 쓸모가 있습니다.

예를 들어 사용자로부터 입력을 받는 프로그램을 작성할 때 양수만 입력받아야 할 수 있습니다. 코드가 최소 한 번은 실행될 것입니다. 만일 사용자가 제출한 숫자가 음수라면 반복문은 계속해서 실행됩니다. 입력이 양수로 들어오면 비로소 반복문이 종료됩니다.

Python은 다른 언어처럼 명시적으로 do while 문을 만드는 내장 기능을 제공하지는 않습니다. 하지만 Python에서도 do while 문을 따라할 수 있습니다.

Python에서 do while 반복문을 따라하는 방법

Python에서 다른 언어의 do while문과 유사하게 동작하는 do while 문을 만드려면 while 문에 약간의 수정이 필요합니다.

지금까지 학습한 내용을 떠올려보면 do while 문은 최소 한 번은 실행됩니다. 조건을 만족하면 반복문은 다시 실행될 것입니다.

반면 while 문은 적어도 한 번은 실행된다고 보장할 수 없고 심지어 절대로 실행되지 않을 수도 있습니다. 오직 조건이 만족할 때만 실행되기 때문입니다.

그래서 최소 한 번은 실행되어야 하는 코드가 있는 예제를 통해 살펴봅시다.

secret_word = "python"
counter = 0

while True:
    word = input("암호를 입력하세요: ").lower()
    counter = counter + 1
    if word == secret_word:
        break
    if word != secret_word and counter > 7: 
        break

사용자의 입력을 받는 코드가 적어도 한 번은 실행됩니다.

무한 반복문이 생성되겠지만 True를 사용하면 최소 한 번 이상 실행되는 것이 항상 보장됩니다.

만약 사용자가 적합한 암호를 입력했다면 반복문은 종료됩니다.

사용자가 7번 넘게 틀린 암호를 입력했다면 반복문은 완전히 종결될 것입니다.

break를 통해 while 문의 흐름을 제어할 수 있고 무한 반복문의 늪에 빠지지 않게 됩니다.

break는 현재의 반복문을 빠져나와 그 즉시 반복문을 종료시킵니다.

따라서 이와 같은 방법으로 Python에서도 do while 문과 비슷한 효과를 얻을 수 있습니다.

반복문은 항상 최소 한 번 이상은 실행됩니다. 조건을 만족하지 않으면 계속해서 반복될 것이고, 조건을 만족하면 종결될 것입니다.

결론

여러분은 이제 Python에서 do while 반복문을 만드는 방법을 알게 되었습니다.

Python에 대해 좀 더 학습해보고 싶다면, freeCodeCamp 유튜브 채널에서 12개의 Python 프로젝트 영상을 시청해보세요. 입문자의 눈높이에 맞춘 영상을 보며 12개의 프로젝트를 완성할 수 있습니다.

또한 freeCodeCamp에서는 Python의 중요한 기본기와 관련하여 깊은 이해력과 전반적인 시야를 키워줄 수 있는 무료 Python 인증서 코스를 제공합니다.

이 코스를 통해 배운 것을 실습하면서 5개의 프로젝트를 완성하게 될 것입니다.

읽어주셔서 감사합니다. 행복한 코딩하세요!