Bài 4: Sử dụng vòng lặp lồng nhau
Trong Bài học trước, bạn đã tạo một dự án để hướng dẫn Robot VR lái xe đến, nhặt và di chuyển cả ba đĩa màu xanh trong Sân chơi di chuyển đĩa vào mục tiêu màu xanh. Trong Bài học này, bạn sẽ tạo một dự án để nhặt và di chuyển một đĩa của mỗi màu vào mục tiêu có màu tương ứng trong Sân chơi di chuyển đĩa bằng cách sử dụng các vòng lặp lồng nhau!

Kết quả học tập
- Xác định cách lồng các vòng lặp.
- Mô tả luồng của một dự án thông qua các vòng lặp lồng nhau.
- Giải thích lý do tại sao các vòng lặp lồng nhau được sử dụng trong một dự án.
Vòng lặp lồng nhau là gì?
Trong các Đơn vị và Bài học trước của khóa học này, bạn đã sử dụng các vòng lặp từ danh mục Kiểm soát như vòng lặp for , vòng lặp while và vòng lặp vô hạn whileđể lặp lại các hành vi. Việc đặt một vòng lặp bên trong một vòng lặp khác được gọi là 'lồng ghép'. Các vòng lặp lồng nhau hữu ích trong các dự án mà Robot VR lặp lại cùng một hành vi nhiều lần, chẳng hạn như di chuyển nhiều đĩa trên Sân chơi. Các vòng lặp lồng nhau có thể sắp xếp và cô đọng một dự án, giúp bạn hiểu dự án dễ hơn. Điều này có thể hữu ích để hiểu rõ hơn bối cảnh và mục đích của mã, cũng như giúp xác định lỗi và khắc phục sự cố của dự án dễ dàng hơn.
Ví dụ, để di chuyển cả ba đĩa màu xanh đến mục tiêu màu xanh, có thể sử dụng vòng lặpchođể lặp lại quá trình thu thập đĩa nhiều lần. Dự án được hiển thị ở đây đặt dự án Bài 3 để di chuyển đĩa màu xanh đầu tiên đến mục tiêu màu xanh bên trong vòng lặp cho , với tham số được đặt thành 3. Lưu ý cách bốn phần của dự án trước được thụt vào trong vòng lặp for.
def main():
cho repeat_count trong phạm vi(3):
#1. Lái đến đĩa đầu tiên
khi không down_eye.near_object():
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()
# 2. Nhấc đĩa
nam châm.kích hoạt(BOOST)
# 3. Lái xe đến đích
drivetrain.turn_to_heading(180, DEGREES)
while front_distance.get_distance(MM) > 200:
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()
# 4. Thả đĩa vào mục tiêu
magnet.energize(DROP)
drivetrain.drive_for(REVERSE, 100, MM)
drivetrain.turn_to_heading(0, DEGREES)
wait(5, MSEC)Khi bạn 'lồng' các vòng lặp, vòng lặp bên ngoài sẽ kiểm soát số lần thực hiện vòng lặp bên trong. Trong dự án này, vòng lặpcholà vòng lặp bên ngoài và sẽ lặp lại các hành vi trong vòng lặp ba lần.
Các vòng lặp bên trong là những vòng lặp nằm bên trong vòng lặp bên ngoài. Trong ví dụ này, mỗi vòng lặpwhile(để đưa dữ liệu vào đĩa và đến đích) là 'vòng lặp bên trong' được thực thi mỗi khi dự án di chuyển qua vòng lặpfor.
Để bạn biết
Việc thụt lề rất quan trọng trong các dự án Python của VEXcode VR. Bạn có thể sử dụng các đường chỉ báo màu xám trong không gian làm việc như một công cụ hỗ trợ trực quan khi lồng các vòng lặp, để đảm bảo rằng dự án của bạn hoạt động như mong đợi. Mỗi dòng chỉ ra điểm bắt đầu và kết thúc của một vòng lặp.

Luồng của một dự án vòng lặp lồng nhau
Trong ví dụ này, mỗi lần vòng lặpcholặp lại, một đĩa màu xanh sẽ được nhặt lên và trả về mục tiêu màu xanh.
Sau lần lặp đầu tiên, đĩa xanh đầu tiên được trả về mục tiêu xanh và VR Robot được xoay để sẵn sàng thu thập đĩa thứ hai.
Sau lần lặp thứ hai, đĩa xanh thứ hai được thu thập và VR Robot được xoay để sẵn sàng thu thập đĩa thứ ba.
Sau lần lặp thứ ba, đĩa xanh thứ ba được thu thập và Robot VR ngừng di chuyển. Vòng lặpcho hiện đã hoàn thành phạm vi của nó, do đó dự án đã hoàn thành.

Chọn nút Tiếp theo để tiếp tục phần còn lại của Bài học này.