살아가는 이야기
Python에서 do/while 루프 본문
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