• 953779710
  • Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.

IES JUAN LÓPEZ MORILLAS

Control de flujo IF, IF-ELSE

Control de flujo IF, IF-ELSE


Los controles de flujo permiten en programación variar, en un número ilimitado de veces a lo largo de un programa, el orden de ejecución del código en función de una o varias condiciones.

En esta entrada nos vamos a centrar en un par de sentencias de control de flujo que utilizaremos en nuestros sketchs de Arduino, el estamento if y el estamento if...else.

El estamento if realiza una comprobación de la condición que hemos establecido entre paréntesis. Si la condición se cumple se ejecuta el código escrito entre llaves. Si la condición establecida entre paréntesis no se cumple, el código entre llaves se ignora y el programa continua su ejecución «normal».

if (valorDeLaCondición ## valorDeReferencia) {
          codigoAEjecutar();
}

Donde ## es un operador lógico o de comparación.

Operadores de comparación
  • x == y X es igual a Y
  • x!=      X no es igual a Y
  • x<y     X es menor que Y
  • x>y     X es mayor que Y
  • x<=y   X es menor o igual que Y
  • x>=y   X es mayor o igual que Y
Operadores lógicos
    • Operador AND (&&). Devuelve un valor Verdadero cuando las dos expresiones son ciertas.

if (x > 0 && x < 25)

    • Operador OR (||). Devuelve un valor Verdadero cuando una expresión o las dos son ciertas.

if (x < 3 || y >6)

    • Operador NOT (!). Devuelve un valor Verdadero cuando la expresión es falsa.

if (!x > 5)

Un ejemplo de uso del estamento if sería el siguiente:

//Enciende un LED conectado al pin digital 3
// y apaga otro conectado al pin digital 4 si se cumple la condición
//de que la variable 'x' sea menor que 3
if (x < 3) {
       digitalWrite(3,HIGH);
       delay(500);
       digitalWrite(4,LOW);
}

 

Podemos establecer más de una condición:

//Se enciende un LED conectado al pin digital 3
//Y se apaga un LED conectado al pin digital 4
//Si la variable 'x' es mayor que 3 y la variable 'y' menor que 6
if (x > 3 && y < 6) {
        digitalWrite(3,HIGH);
        delay(500);
        digitalWrite(4,LOW);
}

El estamento if...else complementa al anterior ya que permite ejecutar un bloque de código si se cumple la condición entre paréntesis y otro bloque de código si la condición expresada entre paréntesis no se cumple. Nunca se podrán ejecutar los dos a la vez dado que son excluyentes.

//Encendido de diferentes LEDs en función de las condición
if (x <= 0) {
          digitalWrite(3,HIGH);
} else if (x < 100) {
          digitalWrite(4,HIGH);
}

Se pueden anidar sentencias if...else que serán entre ellas excluyentes.

if (x <= 0) {
          digitalWrite(3,HIGH);
} else if (x < 100) {
          digitalWrite(4,HIGH);
} else if (x < 200) {
          digitalWrite(5,HIGH);
}

Localización

Visitas

0917823
Hoy: 17
Ayer: 54
Esta semana: 140
Última semana: 255
Este mes: 1.158
Último mes: 1.028