Μάθημα 4: Χρήση ενσωματωμένων βρόχων
Στο προηγούμενο μάθημα, δημιουργήσατε ένα έργο για να δώσετε εντολή στο Ρομπότ Εικονικής Πραγματικότητας να οδηγήσει, να παραλάβει και να μετακινήσει και τους τρεις μπλε δίσκους στην Παιδική Χαρά του Μηχανισμού Μετακίνησης Δίσκων , μέσα στον μπλε στόχο. Σε αυτό το μάθημα, θα δημιουργήσετε ένα έργο για να παραλάβετε και να μετακινήσετε έναν δίσκο από κάθε χρώμα στον αντίστοιχο χρωματιστό στόχο του στο Disk Mover Playground χρησιμοποιώντας ένθετους βρόχους!

Μαθησιακά Αποτελέσματα
- Προσδιορίστε τον τρόπο δημιουργίας ενθέτων βρόχων.
- Περιγράψτε τη ροή ενός έργου μέσω ενσωματωμένων βρόχων.
- Εξηγήστε γιατί θα χρησιμοποιούνταν ένθετοι βρόχοι σε ένα έργο.
Τι είναι οι Nested Loops;
Σε προηγούμενες Ενότητες και Μαθήματα αυτού του μαθήματος, έχετε χρησιμοποιήσει βρόχους από την κατηγορία Έλεγχος, όπως τον βρόχο για , τον βρόχο while και τους βρόχους άπειρου whileγια να επαναλάβετε συμπεριφορές. Η τοποθέτηση ενός βρόχου μέσα σε έναν άλλο βρόχο ονομάζεται «ένθεση». Οι ενσωματωμένοι βρόχοι είναι χρήσιμοι σε έργα όπου ένα ρομπότ εικονικής πραγματικότητας επαναλαμβάνει τις ίδιες συμπεριφορές περισσότερες από μία φορές, όπως για να μετακινήσει πολλούς δίσκους στην παιδική χαρά. Οι βρόχοι ένθεσης μπορούν να οργανώσουν και να συμπυκνώσουν ένα έργο, ώστε να το κάνουν πιο εύκολα κατανοητό. Αυτό μπορεί να είναι χρήσιμο για την καλύτερη κατανόηση του πλαισίου και του σκοπού του κώδικα, καθώς και για την ευκολότερη αναγνώριση σφαλμάτων και την αντιμετώπιση προβλημάτων ενός έργου.
Για παράδειγμα, για να μετακινήσετε και τους τρεις μπλε δίσκους στον μπλε στόχο, μπορεί να χρησιμοποιηθεί ένας βρόχοςπροςγια να επαναληφθεί η διαδικασία συλλογής ενός δίσκου πολλές φορές. Το έργο που εμφανίζεται εδώ τοποθετεί το έργο του Μαθήματος 3 για να μετακινήσει τον πρώτο μπλε δίσκο στον μπλε στόχο μέσα σε έναν βρόχο για , με την παράμετρο ορισμένη σε 3. Παρατηρήστε πώς τα τέσσερα τμήματα του προηγούμενου έργου είναι εσοχή μέσα στον βρόχο για.
def main():
για repeat_count στο εύρος(3):
#1. Οδήγηση στον πρώτο δίσκο
ενώ δεν είναι down_eye.near_object():
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()
# 2. Σηκώστε τον δίσκο
μαγνήτη. Ενεργοποιήστε (ΕΝΙΣΧΥΣΗ)
# 3. Οδήγηση προς τον στόχο
drivetrain.turn_to_heading(180, ΜΟΙΡΕΣ)
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)Όταν κάνετε «ένθεση» σε βρόχους, ο εξωτερικός βρόχος ελέγχει τον αριθμό των φορών που εκτελείται ο εσωτερικός βρόχος. Σε αυτό το έργο, ο βρόχοςγιαείναι ο εξωτερικός βρόχος και θα επαναλάβει τις συμπεριφορές στον βρόχο τρεις φορές.
Οι εσωτερικοί βρόχοι είναι οι βρόχοι που περιέχονται στον εξωτερικό βρόχο. Σε αυτό το παράδειγμα, καθένας από τους βρόχουςwhile(για την οδήγηση στον δίσκο και στον στόχο) είναι «εσωτερικοί βρόχοι» που εκτελούνται κάθε φορά που το έργο μετακινείται μέσω του βρόχουγια.
Για την ενημέρωσή σας
Η εσοχή είναι σημαντική σε έργα VEXcode VR Python. Μπορείτε να χρησιμοποιήσετε τις γκρι ενδεικτικές γραμμές στον χώρο εργασίας ως οπτικό βοήθημα κατά την ένθεση βρόχων, για να διασφαλίσετε ότι το έργο σας λειτουργεί όπως προβλέπεται. Κάθε γραμμή υποδεικνύει την αρχή και το τέλος ενός βρόχου.

Ροή ενός έργου nested loop
Σε αυτό το παράδειγμα, κάθε φορά που επαναλαμβάνεται ο βρόχοςγια, ένας μπλε δίσκος επιλέγεται και επιστρέφει στον μπλε στόχο.
Μετά την πρώτη επανάληψη, ο πρώτος μπλε δίσκος επιστρέφει στον μπλε στόχο και το ρομπότ εικονικής πραγματικότητας γυρίζει για να είναι έτοιμο να παραλάβει τον δεύτερο δίσκο.
Μετά τη δεύτερη επανάληψη, ο δεύτερος μπλε δίσκος συλλέγεται και το ρομπότ εικονικής πραγματικότητας γυρίζει για να είναι έτοιμο να συλλέξει τον τρίτο δίσκο.
Μετά την τρίτη επανάληψη, ο τρίτος μπλε δίσκος συλλέγεται και το ρομπότ εικονικής πραγματικότητας σταματά να κινείται. Ο βρόχοςγια έχει πλέον ολοκληρώσει το εύρος του, επομένως το έργο έχει ολοκληρωθεί.

Επιλέξτε το κουμπί Επόμενο για να συνεχίσετε με το υπόλοιπο μάθημα.