Lección 4: Comportamientos repetidos
En la lección anterior, observó cómo utilizar las declaraciones si para que el robot VR verifique las condiciones. Sin embargo, debido al flujo del proyecto, las condiciones dentro de las instrucciones if solo se verifican una vez. En esta lección, se te presentará un bucle infinito y cómo se puede usar para resolver el desafío del laberinto de discos.

Resultados de aprendizaje
- Identifique que un bucle infinito mientras repite los comportamientos dentro del bucle para siempre.
- Describe por qué se utilizaría un bucle infinito mientras que en un proyecto.
- Describe el flujo del proyecto en un proyecto que tiene múltiples declaraciones if dentro de un bucle while infinito.
- Explique por qué se utilizan las declaraciones if con bucles infinitos while .
Comprobación repetida de las condiciones
Como se observó en la lección anterior, la declaración if solo verifica una condición una vez. Para que las condiciones contenidas en las declaraciones if se verifiquen repetidamente, el proyecto debe volver al inicio una y otra vez. Para hacer esto, se necesita un bucle infinito mientras que .
while True:
wait (5, MSEC)Un bucle infinito while utiliza una condición que siempre se evalúa como Verdadero. Mientras que los bucles ejecutan el cuerpo del bucle cuando la condición es Verdadera, por lo que los comandos dentro del bucle se repiten infinitamente.
El bucle infinito while y el problema del laberinto de discos
Para que el robot VR se comporte como pretendemos y navegue con éxito por el laberinto de discos, las condiciones establecidas por las declaraciones if deben verificarse repetidamente mientras el robot VR se desplaza por el patio de juegos. Agregar un bucle infinito while a todo el proyecto permitirá que esto suceda porque todas las if declaraciones contenidas en el bucle infinito while en el proyecto a continuación se verifican repetidamente hasta que se detiene el proyecto.
Tenga en cuenta la sangría aquí. Todas las declaraciones if están sangradas para estar dentro del bucle infinito while. El final del bucle infinito while se indica mediante el comando wait.
def main():
while True:
# Si el ojo frontal detecta verde, entonces gire a la derecha
si front_eye.detect (VERDE)
: drivetrain.turn_for (DERECHA, 90, GRADOS)
# Si el ojo frontal detecta azul, entonces gire a la izquierda
si front_eye.detect (AZUL)
: drivetrain.turn_for (IZQUIERDA, 90, GRADOS)
# Si el ojo frontal detecta rojo, entonces pare
si front_eye.detect (ROJO):
drivetrain.stop ()
# Si el ojo frontal no detecta ninguno, entonces conduzca hacia adelante
si front_eye.detect (NINGUNO)
: drivetrain.drive (ADELANTE)
espere(5, MSEC)En el proyecto de la lección anterior, las condiciones dentro de las declaraciones si solo se verificaron una vez. Dado que las condiciones dentro de las declaraciones si solo se verificaron una vez, el robot VR avanzó para siempre porque la condición de que no se detectara ningún color se informó como Verdadero al comienzo del proyecto.
Ahora que se ha agregado el bucle infinito while , cada condición de las declaraciones if se verificará repetidamente.
- La condición del bucle infinito while siempre es Verdadero y, por lo tanto, el código dentro del bucle infinito while siempre se ejecutará. Esto verificará continuamente las condiciones de las declaraciones si mientras el proyecto esté en ejecución.
- Recuerde que el 'interior' de un bucle while se indica mediante sangría.
- Durante el flujo del proyecto, si la condición de la declaración if es Verdadera, se ejecutan los comandos dentro de la declaración if. Si la condición de la declaración if es Falsa, los comandos dentro de la declaración if no se ejecutan y el flujo del proyecto continuará con el siguiente comando. Esto permite que el robot VR realice comportamientos discretos, como girar o detenerse una vez que detecta un determinado color.
- Si se utilizan con bucles infinitos while para garantizar que las condiciones se verifiquen constantemente, combinando esencialmente el flujo del proyecto de las if declaraciones dentro del bucle.
Seleccione el botón Siguiente para continuar con el resto de esta lección.