Hoy vamos a tratar otra estructura fundamental en la programación, se llama estructura condicional.
La instrucción if en arduino, seguida de una condición, hará posible que nuestro programa coja distintos caminos dependiendo de si se cumplen o no.
Es una estructura de gran utilidad y que vamos a ver su uso y programación en detalle.
Bloques condicionales
La estructura condicional tiene la siguiente sintaxis:
if (condicion) {……..}
Comenzamos con la instrucción if.
Seguido, y entre paréntesis, escribiremos una condición. Si esta condición se cumple, será validada y por tanto se ejecutará el código que pongamos entre las llaves {…………}. En caso contrario, el programa continuará en la siguiente instrucción sin ejecutar lo encerrado entre llaves.
Para escribir la condición a cumplir usaremos los operadores de comparación dentro de los paréntesis, por ejemplo:
1 |
if (x>5) { digitalWrite(pinLed,HIGH); } |
en esta línea de código vemos que el led conectado a la salida no se encenderá si la variable x no es mayor que 5 ya que la instrucción de encendido del led no se ejecutará hasta que no se cumpla la condición escrita después del comando if.
Esta es la forma básica de uso de la estructura if en arduino.
Vamos a ver a continuación como es la sintaxis de las condiciones y como usarlas.
Escribiendo las condiciones y uso de operadores de comparación
La condición es una expresión lógica que pondremos entre paréntesis después del comando if, como hemos visto en el ejemplo anterior.
De que se cumpla o no dependerá que se ejecute las instrucciones que hayamos escrito entre las llaves que vienen a continuación.
Si se cumple, se le asignará el valor 1 y se ejecutará el código.
Si no se cumple, se le asigna valor 0, se saltará el código dentro de las llaves y continuara la ejecución en la línea de programa siguiente.
Para hacer esta condición, disponemos de los operadores. Estos sirven para comprobar si dos valores son iguales o no.
existen varios tipos de operadores, los de comparación, los de asignación y los lógicos. A la hora de escribir nuestra condición, usaremos normalmente los operadores junto a una variable por ejemplo x.
Veamos los distintos operadores disponibles y su uso con ejemplo:
- x == 5 // si x es igual a 5
- x != 5 // si x es distinto de 5
- x < 5 // si x es menor que 5
- x > 5 // si x es mayor que 5
- x >= 5 // si x es mayor o igual a 5
- x <= 5 // si x es menor o igual a 5
- x < 3 || x >5 // si x es menor que 3 O mayor que 5
- x <== 3 && r ==7 // si x es menor o igual a 3 Y r es igual a 7
En este último ejemplo, observar que se usa el operador == (dos iguales) para comparar la variable con el número. Si pusiésemos solo uno, r = 7, estaríamos asignando el valor 7 a la variable r por lo que ahora pasaría a valer 7 (es una asignación). Hay que tener cuidado pues es fácil cometer un error.
En los dos últimos ejemplos hemos usado dos operadores lógicos :
- || OR // si, cuando alguna de las dos condiciones se cumple (o las 2 a la vez), no cuando no se cumplen a la vez.
- && AND // si, solo cuando las dos condiciones se cumplen a la vez, no en todas las combinaciones restantes
Existen muchos más operadores lógicos, pero sirvan estos como introducción para no complicarlo demasiado. Como se puede ver, las posibilidades de combinación de los operadores para escribir nuestra condición son enormes.
Un caso particular de la condición es que solamente pongamos una variable entre los paréntesis por ejemplo:
1 2 |
if (x) { .... // se ejecutará cuando x sea igual a 1 ...... } |
Estructura de control if – else
Una variante a la estructura de control if en arduino, es cuando usamos else, que nos permite la posibilidad de ejecutar unas instrucciones de programa concretas tanto si se cumple como si no, la condición que hayamos puesto inicialmente.
1 2 3 4 5 6 |
if (condicion) {..... instrucciones si se cumple } else {...... instrucciones si no se cumple } |
Con esto tenemos la posibilidad que el programa tome uno de los dos caminos dependiendo de que una única expresión se cumpla o no. Una vez ejecutada, el programa continuará en la siguiente linea de código restante.
Con este artículo y el de los bucles for, tenemos ya una base mínima para programar y entender lo ejemplos que podemos encontrar.
Espero que no te haya resultado muy pesado y te animo a practicar y comentar si tienes alguna duda.
magnifica exlicacion, clara, concisa, corta.
FELICITACIONES
Gracias, Augusto.
excelente explicaion,
Gracias Javier
muy buena explicación
Muy agradecido por esta explicacion , q por lo q se es fundamental el tema de los condicionales para lograr programar el objetivo de los proyectos
Con la practica se terminara de entenderlo y aplicarlo segun el resultado
Felicidades y gracias por su aporte
Gracias Arturo.
muchas gracias esto me ayudo muchisimo para una tarea
de nada 🙂
La verdad que su explicación me pareció magnífica. Entendí todo a la primera. Recuerdo cuando leí esto hace ya tantos años, y ahora estoy trabajando en la NASA para programar un dispositivo satelital. Lo amo señor Paco. Deme su amor.
jajaja, gracias majo!