살아가는 이야기

Python에서 do/while 루프 본문

컴퓨터, 풀어그림

Python에서 do/while 루프

우균 2016. 8. 2. 08:22

Python에는 do/while 루프가 없다. 따라서 이를 while 루프로 구현해야 한다. 예컨대 다음과 같은 do/while 루프를 구현하려고 한다면

do:
    task()
while condition

아래와 같이 사용해야 한다.

task()
while condition:
    task()

그런데 이렇게 쓰려면 task()를 두 번 써야 한다는 단점이 있다. 위 경우처럼 단순한 함수 호출이라면 별 문제가 안 되겠지만 복잡한 코드라면 아무래도 번거롭게 된다. 따라서 다른 대안으로 아래와 같은 코드를 생각해 볼 수 있다.

while True:
    task()
    if not condition: break

조건문 if의 조건이 반대로 되었다는 사실에 주의해야 한다. if 문 때문에 조금 복잡하게 되었지만 task() 호출을 두 번 작성하지 않아도 된다는 장점이 있다.

조건문 if가 반대로 된 것이 불편하다면 약간 더 길긴 하지만 다음과 같이 작성해도 된다.

while True:
    task()
    if condition: continue
    break

맨 마지막 것이 가장 읽기 편한 것 같다. 조건을 반전시키지 않아도 되고, 다른 언어의 do/while 문과 거의 같은 순서로 배열되어 있기 때문이다.

Comments