martes, 25 de enero de 2022

Sintaxis if (condition) { //statement(s) } + Bloques “switch”

Parámetros

condición: una expresión booleana, es decir, puede ser trueofalse

Cosas a tener en cuenta

  • Puedes comparar todas las condiciones que necesites, no hay ningún limite.
    Para ello simplemente agrega tantos else if como necesites. 
  • No es obligatorio utilizar siempre la sentencia else if ni la sentencia else.
    Si por ejemplo solo necesitas comprobar una condición, no necesitas usar el else if
  • Una vez se cumple una condición, se ejecutan las intrucciones que hayan
    dentro de dicho if o else if y ya no se comprobarán el resto de condiciones.

Sintaxis

if (condition1) {
  // do Thing A
}
else if (condition2) {
  // do Thing B
}
else {
  // do Thing C
}

Código de ejemplo

A continuación se muestra un extracto de un código para el sistema de sensor de temperatura

if (temperature >= 70) {
  // Danger! Shut down the system.
}
else if (temperature >= 60) { // 60 <= temperature < 70
  // Warning! User attention required.
}
else { // temperature < 60
  // Safe! Continue usual tasks.
}

Notas y Advertencias
Las declaraciones que se evalúan dentro de los paréntesis requieren el uso de uno
o más operadores que se muestran a continuación.

Operadores de comparación:

x == y (x es igual a y)
x != y (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)
Tenga cuidado con el uso accidental del signo igual único (p. ej if (x = 10)., ).
El único signo igual es el operador de asignación y se establece xen 10 (coloca el
valor 10 en la variable x). En su lugar, utilice el signo igual doble (p. ej if (x == 10).),
que es el operador de comparación y comprueba si x es igual a 10 o no. La última
afirmación solo es verdadera si xes igual a 10, pero la primera afirmación siempre
será verdadera.
Esto se debe a que C evalúa la declaración de la if (x=10)siguiente manera: 10 se
asigna a x(recuerde que el único signo igual es el ( operador de asignación )), por
lo que xahora contiene 10. Luego, el condicional 'if' evalúa 10, que siempre se
evalúa como TRUE, ya que cualquier número distinto de cero se evalúa como
VERDADERO. En consecuencia, if (x = 10)siempre se evaluará como TRUE, que no es
el resultado deseado cuando se usa una instrucción 'si'. Además, la variable se 
establecerá en 10, que tampoco es una acción deseada.

El Octavo Bit » Lenguaje de programación Arduino. » If…else


Bloques “switch”

Una manera válida de hacer comprobaciones de condiciones múltiples, más elegante
, cómoda y fácil es utilizar el bloque switch. Su sintaxis es la siguiente:
switch (expresión) {
case valor1:
//Instrucciones que se ejecutarán cuando “expresión” sea igual a “valor1”
break;
case valor2:
//Instrucciones que se ejecutarán cuando “expresión” sea igual a “valor2”
break;
//Puede haber los “case” que se deseen, y al final una sección “default” (opcional)//
default:
//Instrucciones que se ejecutan si no se ha ejecutado ningún “case” anterior
}
La única limitación que tiene el switch es que solo se pueden evaluar números enteros
, y solo se evalúan las condiciones hasta que una sea cierta.

Ejemplo de uso de un switch

int x; //Declara una variable sin un valor inicial
void setup(){
Serial.begin(9600); //inicia la comunicación serial
}
void loop() {
if (Serial.available()>0){  //Consulta si hay datos en buffer de entrada serial
  x=Serial.parseInt();  //Lee un numero entero en el buffer serial y lo guarda en x
  switch (x) {  //consulto el valor de la variable x
  case 20:
  Serial.println("x vale 20 exactamente");  //Imprime un mensaje si el valor de x es 20
  break;
  case 50:
  Serial.println("x vale 50 exactamente");  //Imprime un mensaje si el valor de x es 50
  break;
  default:
 Serial.println("x no vale ni 20 ni 50");  
//Imprime un mensaje si no se cumplen las condiciones anteriores } }}

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.