리보그월드: if ... else ...를 무한 반복하는 방법

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. 비었으면 한 칸 이동

  3. 막혔으면 왼쪽으로 회전

  4. 다시 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. 정리

용도

코드

진짜 무한 반복

while True:

목표까지 반복

while not at_goal():

반복 중단

break

리보그 과제

보통 while not at_goal():가 더 안전합니다.


6. 참고