레슨 4: 중첩 루프 사용
이전 수업에서는 VR 로봇이 Disk Mover Playground 에 있는 세 개의 파란색 디스크를 모두 운전해서 집어 들고 파란색 골로 옮기도록 지시하는 프로젝트를 만들었습니다. 이 수업에서는 중첩 루프를 사용하여 Disk Mover Playground 에서 각 색상의 디스크를 하나씩 집어 해당 색상의 목표로 옮기는 프로젝트를 만들어 보겠습니다!

학습 성과
- 루프를 중첩하는 방법을 식별합니다.
- 중첩 루프를 통한 프로젝트의 흐름을 설명합니다.
- 프로젝트에서 중첩 루프를 사용하는 이유를 설명하세요.
중첩 루프란 무엇인가요?
이 과정의 이전 단원과 수업에서는 for 루프, while 루프, 무한 while루프와 같은 제어 범주의 루프를 사용하여 동작을 반복했습니다. 한 루프를 다른 루프 안에 넣는 것을 '중첩'이라고 합니다. 중첩 루프는 VR 로봇이 동일한 동작을 두 번 이상 반복하는 프로젝트(예: 놀이터에서 여러 개의 디스크를 옮기는 것)에 유용합니다. 중첩 루프를 사용하면 프로젝트를 구성하고 요약하여 더 쉽게 이해할 수 있습니다. 이는 코드의 맥락과 목적을 더 잘 이해하는 데 도움이 될 뿐만 아니라 프로젝트의 오류를 식별하고 문제를 해결하는 데도 도움이 됩니다.
예를 들어, 파란색 디스크 3개를 모두 파란색 골대로 옮기려면에서루프를 사용하여 디스크를 모으는 과정을 여러 번 반복할 수 있습니다. 여기에 표시된 프로젝트는 에서 으로 반복되는 루프 안에서 첫 번째 파란색 디스크를 파란색 목표로 옮기는 레슨 3 프로젝트를 배치하고 매개변수를 3으로 설정합니다. 이전 프로젝트의 4개 섹션이 에서 루프로 들여쓰기되어 있는 방식에 주목하세요.
def main():
for repeat_count in range(3):
#1. down_eye.near_object()가 아닌 첫 번째 디스크
으로 이동합니다.
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()
# 2. 디스크
magnet.energize(BOOST)
# 3을 집어 올리세요. 목표를 향해 주행
drivetrain.turn_to_heading(180, DEGREES)
while front_distance.get_distance(MM) > 200:
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()
# 4. 목표 지점에 디스크를 떨어뜨립니다.
magnet.energize(DROP)
drivetrain.drive_for(REVERSE, 100, MM)
drivetrain.turn_to_heading(0, DEGREES)
wait(5, MSEC)루프를 '중첩'하면 바깥쪽 루프가 안쪽 루프가 실행되는 횟수를 제어합니다. 이 프로젝트에서는for루프가 바깥쪽 루프이며, 루프의 동작을 세 번 반복합니다.
내부 루프는 외부 루프 내에 포함된 루프입니다. 이 예에서while루프(디스크와 목표까지 이동하는 루프)는 프로젝트가for루프를 거칠 때마다 실행되는 '내부 루프'입니다.
귀하의 정보를 위해
VEXcode VR Python 프로젝트에서는 들여쓰기가 중요합니다. 루프를 중첩할 때 작업 공간의 회색 표시선을 시각적 보조 도구로 활용하여 프로젝트가 의도한 대로 작동하는지 확인할 수 있습니다. 각 줄은 루프의 시작과 끝을 나타냅니다.

중첩 루프 프로젝트의 흐름
이 예에서을으로 반복하는 루프가 반복될 때마다 파란색 디스크를 집어 올려 파란색 골로 돌려보냅니다.
첫 번째 반복 후, 첫 번째 파란색 디스크를 파란색 목표로 반환하고 VR 로봇을 돌려 두 번째 디스크를 수집할 준비를 합니다.
두 번째 반복 이후, 두 번째 파란색 디스크를 수집하고 VR 로봇을 돌려 세 번째 디스크를 수집할 준비를 합니다.
세 번째 반복 이후, 세 번째 파란색 디스크를 수집하고 VR 로봇은 움직임을 멈춥니다. 에서 까지의 루프가 이제 범위를 완료했으므로 프로젝트가 완료되었습니다.

이 강의의 나머지 부분을 계속하려면 다음 버튼을 선택하세요.