Lección 4: Uso de bucles anidados
En la lección anterior, creaste un proyecto para instruir al robot de realidad virtual para que conduzca, recoja y mueva los tres discos azules en el Disk Mover Playground al objetivo azul. ¡En esta Lección, crearás un proyecto para recoger y mover un disco de cada color a su objetivo de color correspondiente en el Disk Mover Playground usando bucles anidados!

Resultados de aprendizaje
- Identificar cómo anidar bucles.
- Describir el flujo de un proyecto a través de bucles anidados.
- Explica por qué se usarían bucles anidados en un proyecto.
¿Qué son los bucles anidados?
En unidades y lecciones anteriores de este curso, ha utilizado bucles de la categoría Control, como el bucle for , el bucle while y los bucles infinitos while para repetir comportamientos. Colocar un bucle dentro de otro bucle se llama "anidación". Los bucles anidados son útiles en proyectos en los que un robot de realidad virtual repite los mismos comportamientos más de una vez, como mover varios discos en el patio de recreo. Los bucles de anidación pueden organizar y condensar un proyecto, para que sea más fácil de entender. Esto puede ser útil para comprender mejor el contexto y el propósito del código, así como para facilitar la identificación de errores y la solución de problemas de un proyecto.
Por ejemplo, para mover los tres discos azules hacia el objetivo azul, se puede utilizar un bucle para para repetir el proceso de recolectar un disco varias veces. El proyecto que se muestra aquí coloca el proyecto de la Lección 3 para mover el primer disco azul al objetivo azul dentro de un bucle para , con el parámetro establecido en 3. Observe cómo las cuatro secciones del proyecto anterior están sangradas dentro del bucle for.
def main():
for repeat_count in range(3):
#1. Conduzca hasta el primer disco
sin down_eye.near_object (): drivetrain.drive
(FORWARD)
wait(5, MSEC)
drivetrain.stop()
# 2. Recoge el disco magnet.energize
(BOOST)
# 3. Conduzca hasta la meta
drivetrain.turn_to_heading(180, GRADOS)
mientras front_distance.get_distance(MM) > 200:
drivetrain.drive(FORWARD)
espere(5, MSEC)
drivetrain.stop()
# 4. Deje caer el disco en la
metamagnet.energize (DROP
)drivetrain.drive_for (REVERSE, 100, MM)
drivetrain.turn_to_heading(0, GRADOS)
espere(5, MSEC)Al "anidar" bucles, el bucle externo controla la cantidad de veces que se ejecuta el bucle interno. En este proyecto, el bucle para es el bucle externo y repetirá los comportamientos del bucle tres veces.
Los bucles interiores son aquellos bucles contenidos dentro del bucle exterior. En este ejemplo, cada uno de los bucles while (para llegar al disco y al objetivo) son 'bucles internos' que se ejecutan cada vez que el proyecto pasa por el bucle for .
Para su información
La sangría es importante en los proyectos de VEXcode VR Python. Puede usar las líneas indicadoras grises en el espacio de trabajo como ayuda visual al anidar bucles, para asegurarse de que su proyecto funcione según lo previsto. Cada línea indica el inicio y el final de un bucle.

Flujo de un proyecto de bucle anidado
En este ejemplo, cada vez que se itera el bucle para , se recoge un disco azul y se devuelve al objetivo azul.
Después de la primera iteración, el primer disco azul vuelve a la meta azul y el robot VR se gira para estar listo para recoger el segundo disco.
Después de la segunda iteración, se recoge el segundo disco azul y se gira el robot VR para que esté listo para recoger el tercer disco.
Después de la tercera iteración, se recoge el tercer disco azul y el robot VR deja de moverse. El bucle para ya ha completado su alcance, por lo que el proyecto está completado.

Seleccione el botón Siguiente para continuar con el resto de esta lección.