[Arduino] Referencia: Condicionales

Condicional abreviado o ternario

condition ? true : false; A==5 ? dispara(): espera(); // Si A vale 5 se ejecuta dispara(), si no espera()

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 }