리보그월드에서 반복문은 같은 코드를 여러 번 실행할 때 사용합니다. 파이썬의 for, while 과 리보그 전용 repeat 를 배웁니다.
1. 반복문이 필요한 이유
같은 코드를 여러 번 쓸 때 반복문을 사용하면 코드가 짧아지고 읽기 쉬워집니다.
반복문 없이 작성
move()
move()
move()
move()
turn_left()
반복문 사용
for i in range(4):
move()
turn_left()
2. repeat (리보그 전용)
repeat 는 리보그세상에서만 동작하는 간단한 반복문입니다. 표준 파이썬에는 없습니다.
문법
repeat n:
# 명령어
# 명령어
-
n: 반복할 횟수 (정수만 가능) -
:: 콜론 필수 -
들여쓰기: 본문은 반드시 들여씀 (공백 4 칸)
예제 1: 정사각형 그리기
repeat 4:
move()
turn_left()
예제 2: 오른쪽 돌기
def turn_right():
repeat 3:
turn_left()
turn_right()
예제 3: 5 칸 이동
repeat 5:
move()
주의사항
-
repeat는 리보그 세상 전용입니다. 일반 파이썬에서는 작동하지 않습니다. -
n에 변수를 쓸 수 없습니다. 오직 정수만 가능합니다. -
학생이 변수와
for를 배우면repeat대신 표준 파이썬을 사용해야 합니다.
3. for 반복문 (표준 파이썬)
for 는 정해진 횟수만큼 반복할 때 사용합니다.
문법
for i in range(n):
# 명령어
# 명령어
-
for: 반복문 키워드 -
i: 반복 변수 (이름은 자유롭게 변경 가능) -
in:range에 포함된 값을 하나씩 가져옴 -
range(n): 0 부터 n-1 까지 숫자 생성 -
:: 콜론 필수 -
들여쓰기: 본문은 반드시 들여씀
예제 1: 5 칸 이동
for i in range(5):
move()
예제 2: 정사각형 그리기
for i in range(4):
move()
turn_left()
예제 3: 함수 정의와 함께
def turn_right():
for i in range(3):
turn_left()
turn_right()
range() 의 다양한 사용
# 0 부터 4 까지 (5 번)
for i in range(5):
print(i) # 0, 1, 2, 3, 4
# 2 부터 6 까지 (5 번)
for i in range(2, 7):
print(i) # 2, 3, 4, 5, 6
# 2 씩 증가 (0, 2, 4, 6, 8)
for i in range(0, 10, 2):
print(i)
4. while 반복문 (조건 반복)
while 은 조건이 참인 동안 계속 반복합니다. 횟수를 모를 때 사용합니다.
문법
while 조건:
# 명령어
# 명령어
-
while: 조건 반복 키워드 -
조건: 참/거짓을 반환하는 식 -
:: 콜론 필수 -
들여쓰기: 본문은 반드시 들여씀
예제 1: 앞이 비어 있는 동안 이동
while front_is_clear():
move()
예제 2: 목표에 도착할 때까지 반복
while not at_goal():
move()
예제 3: 허들 넘기
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()
while 의 동작 원리
while condition():
do_1()
do_2()
do_3()
이 코드는 다음과 같이 동작합니다.
-
condition()이 참인지 확인 -
참이면
do_1(),do_2(),do_3()실행 -
다시 1 번으로 돌아가 조건 확인
-
조건이 거짓이 되면 반복 종료
무한 루프 주의
조건이 항상 참이면 반복이 끝나지 않습니다.
# ❌ 위험: 절대 멈추지 않음
while True:
move()
꼭 무한 반복이 필요하면 break 를 사용합니다.
while True:
if at_goal():
break
move()
5. for vs while vs repeat
|
반복문 |
언제 사용 |
예시 |
|---|---|---|
|
|
리보그 전용, 횟수가 정해짐 |
|
|
|
표준 파이썬, 횟수가 정해짐 |
|
|
|
횟수를 모르고 조건으로 판단 |
|
선택 가이드
-
횟수를 정확히 알 때:
for또는repeat -
횟수를 모를 때:
while -
리보그 초급:
repeat로 시작 -
표준 파이썬:
for와while사용
6. 중첩 반복문
반복문 안에 반복문을 넣을 수 있습니다.
예제 1: 3x3 정사각형 이동
for i in range(3):
for j in range(3):
move()
turn_left()
예제 2: 계단 만들기
for i in range(4):
move()
turn_left()
move()
turn_right()
7. break 와 continue
break: 반복문 즉시 종료
while True:
if at_goal():
break
move()
continue: 이번 반복 건너뛰고 다음으로
for i in range(10):
if i == 5:
continue
print(i) # 0, 1, 2, 3, 4, 6, 7, 8, 9
8. 리보그 예제 모음
예제 1: Alone 월드에서 정사각형
for i in range(4):
move()
turn_left()
예제 2: Hurdle 1 (6 개 허들)
def turn_right():
turn_left()
turn_left()
turn_left()
def jump():
move()
turn_left()
move()
turn_right()
move()
turn_right()
move()
turn_left()
for i in range(6):
jump()
예제 3: Hurdle 2 (개수 가변)
def turn_right():
turn_left()
turn_left()
turn_left()
def jump():
move()
turn_left()
move()
turn_right()
move()
turn_right()
move()
turn_left()
while not at_goal():
jump()
예제 4: Hurdle 3 (간격 가변)
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: Hurdle 4 (높이 가변)
def turn_right():
turn_left()
turn_left()
turn_left()
def jump():
turn_left()
while not right_is_clear():
move()
turn_right()
move()
turn_right()
while front_is_clear():
move()
turn_left()
while not at_goal():
if front_is_clear():
move()
else:
jump()
9. 자주 하는 실수
|
실수 |
수정 |
|---|---|
|
|
|
|
|
|
|
들여쓰기 안 함 |
본문은 공백 4 칸 들여쓰기 |
|
|
|
|
|
무한 루프 주의 |
10. 연습 문제
문제 1
repeat 를 사용해 8 칸 이동하는 코드를 작성하세요.
# 여기에 코드 작성
문제 2
for 를 사용해 정육각형을 그리세요. (한 변: move(), 회전: turn_left())
# 여기에 코드 작성
문제 3
while 을 사용해 앞이 막힐 때까지 이동하는 코드를 작성하세요.
# 여기에 코드 작성
문제 4
Hurdle 2 월드에서 while 과 if 를 사용해 허들을 넘으세요.
# 여기에 코드 작성
11. 정리
|
반복문 |
문법 |
특징 |
|---|---|---|
|
|
|
리보그 전용, 정수만 가능 |
|
|
|
표준 파이썬, 횟수 정해짐 |
|
|
|
조건이 참인 동안 반복 |
권장 학습 순서
-
repeat로 반복 개념 익히기 -
for로 표준 파이썬 전환 -
while로 조건 반복 학습 -
break,continue로 제어 심화
12. 참고 자료
-
리보그 공식 문서: 반복 (repeat)
-
리보그 공식 문서: while 문
-
Python 공식 문서: for 문
-
Python 공식 문서: while 문