arduino
Bucles
Buscar..
Sintaxis
- para (declaración, condición, iteración) {}
- while (condición) {}
- do {} while (condicion)
Observaciones
General Remark
Si pretende crear un bucle para esperar a que suceda algo, es probable que esté en el camino equivocado aquí. Más bien, recuerde que todo el código después de la configuración () se ejecuta desde un método llamado bucle (). Entonces, si necesita esperar por algo, es más fácil no hacer nada (o solo otras cosas independientes) y volver para verificar la condición de espera la próxima vez.
do { } while(condition)
no evaluará la declaración de condición hasta después de la primera iteración. Es importante tener esto en cuenta si la declaración de condición tiene efectos secundarios.
Mientras
Un while
de bucle evaluará su condición, y si true
, se ejecutará el código dentro y empezar de nuevo. Es decir, siempre y cuando su condición se evalúa como true
, el while
de bucle se ejecutará una y otra vez.
Este bucle se ejecutará 100 veces, cada vez que se agregue 1 a la variable num
:
int num = 0;
while (num < 100) {
// do something
num++;
}
El bucle anterior es equivalente a un bucle for
:
for (int i = 0; i < 100; i++) {
// do something
}
Este bucle se ejecutará para siempre:
while (true) {
// do something
}
El bucle anterior es equivalente a un bucle for
:
for (;;) {
// do something
}
por
for
bucles son sintaxis simplificada para un patrón de bucle muy común, lo que podría llevarse a cabo en más líneas con un while
de bucle.
El siguiente es un ejemplo común de un bucle for
, que se ejecutará 100 veces y luego se detendrá.
for (int i = 0; i < 100; i++) {
// do something
}
Esto es equivalente a un while
de bucle:
int num = 0;
while (num < 100) {
// do something
num++;
}
Puede crear un bucle sin fin omitiendo la condición.
for (;;) {
// do something
}
Esto es equivalente a un while
de bucle:
while (true) {
// do something
}
Hacer ... mientras
Un do while
bucle es lo mismo que un while
de bucle, excepto que está garantizado para ejecutar al menos una vez.
El siguiente bucle se ejecutará 100 veces.
int i = 0;
do {
i++;
} while (i < 100);
Un bucle similar, pero con una condición diferente, se ejecutará 1 vez.
int i = 0;
do {
i++;
} while (i < 0);
Si el bucle de arriba eran meramente un while
bucle, se ejecutaría 0 veces, porque la condición evaluaría a false
antes de la primera iteración. Pero como es un bucle do while
while, se ejecuta una vez, luego verifica su condición antes de ejecutarse nuevamente.
Control de flujo
Hay algunas formas de romper o cambiar el flujo de un bucle.
break;
saldrá del bucle actual y no ejecutará más líneas dentro de ese bucle.
continue;
no ejecutará ningún código más dentro de la iteración actual del bucle, pero permanecerá en el bucle.
El siguiente bucle se ejecutará 101 veces (i = 0, 1, ..., 100) en lugar de 1000, debido a la instrucción break
:
for (int i = 0; i < 1000; i++) {
// execute this repeatedly with i = 0, 1, 2, ...
if (i >= 100) {
break;
}
}
El siguiente bucle dará como resultado que el valor de j
sea 50 en lugar de 100, debido a la instrucción continue
:
int j=0;
for (int i = 0; i < 100; i++) {
if (i % 2 == 0) { // if `i` is even
continue;
}
j++;
}
// j has the value 50 now.