====== [Arduino] Referencia: Condicionales ======
===== Condicional abreviado o ternario =====
condition ? true : false;
A==5 ? dispara(): espera(); // Si A vale 5 se ejecuta dispara(), si no espera()
\\
- [[https://aprenderaprogramar.es/index.php?option=com_content&view=article&id=833:operador-condicional-ternario-qif-con-interrogacionq-javascript-java-php-y-dos-puntos-ejemplo-cu01152e&catid=78&Itemid=206|Operador condicional ternario "if con interrogación"]]
**Ventajas e inconvenientes del operador condicional ternario**. En la siguiente tabla resumimos las ventajas e inconvenientes del operador condicional ternario comparándolo con el if tradicional.
^ Condicional ternario ^ If tradicional ^
| Permite la escritura compacta, permitiendo ahorrar escritura de código. | Obliga a escribir más sentencias para conseguir el mismo resultado. |
| Resulta más difícil de leer, entender y depurar | Resulta más fácil de leer, entender y depurar |
| No todos los programadores lo usan, algunos ni siquiera lo conocen. | Todos los programadores lo usan y lo conocen. |
| Se admite en la sintaxis de los lenguajes en lugares donde no se admite la sentencia if | No es válido en ciertas ubicaciones donde sólo se admiten expresiones, pero puede hacerse la evaluación antes del punto donde sea necesario el condicional. |
| Criticado por algunos expertos, adorado por otros | Uso y aceptación cuasi-universal |
\\
===== Condicional if =====
if (variable < 10) {
// accion A, se ejecuta si variable es menor de 10
}
if (variable < 10) {
// accion A, se ejecuta si variable es menor de 10
} else {
// accion B, se ejecuta si variable es mayor o igual a 10
}
if (variable < 10) {
// accion A, se ejecuta si variable es menor de 10
} else if (variable >= 100) {
// accion B, se ejecuta si variable es mayor o igual a 100
} else {
// accion C, se ejecuta si variable es mayor o igual a 10 y menor de 100
}
\\
===== Condicional switch/case of =====
switch (variable) {
case 1:
// accion A, se ejecuta si variable vale 1
break;
case 2:
// accion B, se ejecuta si variable vale 2
break;
default:
// caso por defecto (opcional), se ejecuta en cualquier otro caso
}
\\
switch (variable) {
case 1:
case 2:
// accion A, se ejecuta si variable vale 1 o 2
break;
case 3:
// accion B, se ejecuta si variable vale 3
break;
default:
// caso por defecto (opcional), se ejecuta en cualquier otro caso
}
\\