Reference   Language (extended) | Libraries | Comparison | Changes

if (condicional) y ==, !=, <, > (operadores de comparación)

if, el cual puede ser usado en conjunto con uno o más operadores de comparación, comprueba si cierta condición se cumple, por ejemplo, si un input posee un valor mayor a cierto número. El formato para una comprobación if es el siguiente:

if (algunaVariable > 50)
{
  // hacer algo aquí.
}

Este programa comprueba si la variable algunaVariable es mayor a 50. Si lo es, el programa toma una acción particular. Dicho de otra forma, si la declaración escrita dentro de los paréntesis es verdadera (true), el código dentro de las llaves se ejecutará. Sino, el programa ignora dicho código.

Las llaves pueden ser omitidas luego de una declaración if. De hacer esto, la siguiente línea (definida por el punto y coma) será la única afectada por la condición.


if (x > 120) digitalWrite(LEDpin, HIGH); 

if (x > 120)
digitalWrite(LEDpin, HIGH); 

if (x > 120){ digitalWrite(LEDpin, HIGH); } 

if (x > 120){ 
  digitalWrite(LEDpin1, HIGH);
  digitalWrite(LEDpin2, HIGH); 
}                                 

// todos los ejemplos son correctos.

Las declaraciones a evaluar dentro de los paréntesis, requieren el uso de uno o más operadores:

Operadores de Comparación:

 x == y (x es igual a y)
 x != y (x no es igual a y)
 x <  y (x es menor a y)  
 x >  y (x es mayor a y) 
 x <= y (x es menor o igual a y) 
 x >= y (x es mayor o igual a y)

Atención:

Ten cuidado de no usar un signo de igual solo (ej. if (x = 10) ). Un signo de igual solo es el operador que indica la asignación de un valor, y va a asignar 10 a x. En su lugar usa el signo de igual doble (ej. if (x == 10) ), el cual es el operador de comparación, y compryeba si x equivale a 10 o no. El último ejemplo sólo da true si x equivale a 10, pero el ejemplo anterior (con un sólo símbolo =) dará siempre TRUE.

Esto es porque C evalúa la declaración if (x=10) de la siguiente manera: 10 es asignado a x (Recuerda que un signo = solo, es el operador de asignación), por lo tanto x ahora contiene 10. Entonces el condicional if evalúa 10, el cual siempre resulta TRUE, debido a que cualquier valor numérico mayor a 0 es evaluado como TRUE. Consecuentemente, if (x = 10) siempre será evaluado como TRUE, lo cual no es el resultado deseado cuando se usa una declaración if. Adicionalmente, la variable x será definida en 10, lo que tampoco es una acción deseada.

if también puede ser parte de una estructura de control de ramificación usando la construcción if...else.

Página principal Referencia

Correcciones, sugerencias, y nueva documentación deberán ser publicadas en el Foro (castellano) o en el Foro (inglés).

El texto de la referencia de Arduino está publicado bajo la licencia Creative Commons Reconocimiento-Compartir bajo la misma licencia 3.0. Los ejemplos de código de la referencia están liberados al dominio público.

Share