1. 무한 반복 기본형
if ... else ...를 무한 반복하려면 while True:를 바깥에 쓰면 됩니다. True는 항상 참이므로 반복이 계속됩니다.
while True:
if front_is_clear():
move()
else:
turn_left()
코드 구조
while True: # 계속 반복
if front_is_clear(): # 앞이 비었는가?
move() # 비었으면 이동
else: # 앞이 막혔으면
turn_left() # 왼쪽으로 회전
이 코드는 리보그가 다음 동작을 계속 반복합니다.
-
앞이 비었는지 확인
-
비었으면 한 칸 이동
-
막혔으면 왼쪽으로 회전
-
다시 1번으로 돌아감
2. 목표에 도착하면 멈추기 (권장)
리보그에서는 무한 반복보다 목표 조건을 넣는 것이 안전합니다.
while not at_goal():
if front_is_clear():
move()
else:
turn_left()
이 코드는 목표에 도착하면 반복을 자동으로 끝냅니다. 리보그 공식 예제에서도 front_is_clear()를 if/else와 함께 사용해 이동과 회전을 선택합니다.
3. while True에서 직접 멈추기
꼭 while True:를 사용해야 한다면 break를 넣습니다.
while True:
if at_goal():
break
if front_is_clear():
move()
else:
turn_left()
break는 현재 반복문을 즉시 빠져나가는 명령입니다.
while True:
if at_goal():
break
뜻은 "계속 반복하되, 목표에 도착하면 반복을 중단하라"입니다.
4. 허들에서는
앞이 막혔을 때 단순히 돌지 않고 허들을 넘어야 한다면 다음처럼 작성합니다.
def turn_right():
turn_left()
turn_left()
turn_left()
def jump():
turn_left()
move()
turn_right()
move()
turn_right()
move()
turn_left()
while not at_goal():
if front_is_clear():
move()
else:
jump()
5. 정리
|
용도 |
코드 |
|---|---|
|
진짜 무한 반복 |
|
|
목표까지 반복 |
|
|
반복 중단 |
|
|
리보그 과제 |
보통 |
6. 참고
-
FreeCodeCamp: Python While Loop Tutorial
-
Reeborg's World: Learn Python with Reeborg