Primero se evalúa la condición y según el resultado se ejecuta la primera o segunda parte del código.
if (condición){ ...; }else{ ...; }
Algunos ejemplos:
bool estado = true; if (estado){ //Si es verdadero }else{ //Si es falso } byte n = 3: if (n){ //Si n>0 }else{ //Solo si n=0 }
Tenga cuidado que usar asignación = dentro de la condición no produce un error.
Se compara el valor de una variable con cada una de las etiquetas. Break sale de switch sin evaluar el resto de condiciones.
switch (variable){ case etiqueta1: ...; break; case etiqueta2: ...; break; default: ...; }
En este ejemplo se evalua la entrada desde monitor serie:
if (Serial.avalable()>0)´{ char n = serial.read(); switch (n){ case 'A': Serial.println("Letra A"); break; case 'B': Serial.println("Letra B"); break; default: Serial.println("Otra letra"); } }
La inicialización de una variable local se produce una sola vez y la condición se comprueba cada vez que se termina la ejecución de las instrucciones dentro del bucle. Si la condición sigue cumpliéndose, las instrucciones del bucle se vuelven a ejecutar. Cuando la condición no se cumple, el bucle termina.
for (ini; condición; operación){ ...; }
Aqui un ejemplo que va de 0 a 19
for (byte n=0; n<20; n++){ Serial.println(n); }
Primero se evalúa la condición y solo si es verdadera se ejecutan las sentencias. Es posible que el bucle no se ejecute nunca.
while (condición){ ...; }
Aqui imprimimos los numeros de 0 al 19.
byte n=0; while (n<20){ Serial.println(n); n++; }
La sentencia while(1); es un ciclo infinito.
Primero ejecuta las sentencias y luego comprueba la condición, por lo que el bucle de ejecuta por lo menos una vez.
do{ ...; }while (condición);
El siguiente ejemplo imprime de 0 hasta 9.
byte n=0; do{ Serial.println(n); n++; }while (n<10);
break se usa para salir de un bucle FOR, WHILE o DO... WHILE, pasando por alto la condición del bucle normal. También se usa para salir de una declaración de mayúsculas y minúsculas.
En el ejemplo el FOR termina cuando sens > threshold
for (byte x=0; x<255; x++){ analogWrite(10, x); sens = analogRead(0); if (sens > threshold){ x = 0; break; } delay(50); }
La instruccion continue omite el resto de la iteración actual de un ciclo ( para , mientras , o para ... mientras ). Continúa comprobando la expresión condicional del ciclo y avanzando con cualquier iteración posterior.
El siguiente codigo escribe del 0 al 255 omitiendo del 41 al 119.
for (byte x=0; x <=255; x++){ if (x > 40 && x < 120){ continue; } analogWrite(10, x); delay(50); }
Transfiere el flujo del programa a un punto etiquetado en el programa. Para establecer la etiqueta se usa label:.
goto label;
Termine una función y devuelva un valor de una función a la función de llamada, si lo desea.
return valor;
El tipo de dato a devolver dependerá de como se definió la función de usuario. No funciona su se uso void.
int checkSensor(){ if (analogRead(0) %gt; 400) { return 1; }else{ return 0; } }