El Bloque "Switch

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 2

El bloque “switch”

Como se ha podido ver en el apartado anterior, los bloques “else if” se


tienen en cuenta siempre y cuando las condiciones evaluadas hasta
entonces hayan sido falsas, y la condición del propio “else if” sea la
cierta. Es decir, un bloque if(condicion1){}else if(condicion2){} se puede
leer como “si ocurre condicion1, haz el interior del primer if, y si no,
mira a ver si ocurre condicion2, y (solo) si es así, haz entonces el interior
del elseif”. Esta es una manera válida de hacer comprobaciones de
condiciones múltiples, pero existe otra forma más elegante, cómoda y
fácil de hacer lo mismo: utilizar el bloque “switch”. Su sintaxis es la
siguiente:

Un bloque “switch” es como una especie de “if else” escrito más


compactamente. Como se puede ver, consta en su interior de una serie
de secciones “case” y, opcionalmente, de una sección “default”. Nada
más llegar a la primera línea del “switch”, primero se comprueba el valor
de la variable o expresión que haya entre sus paréntesis (siguiendo las
mismas reglas y operadores posibles usados en un “if” estándar). Si el
resultado es igual al valor especificado en la primera sección “case”, se
ejecutarán las instrucciones del interior de la misma y se dará por
finalizado el “switch”, continuando la ejecución del sketch por la primera
línea después de la llave de cierre. En caso de no ser igual el resultado
de la expresión a lo especificado en el primer “case” se pasará a
comprobarlo con el segundo “case” , y si no con el tercero, etc. Por
último, si existe una sección “default” (opcional) y el resultado de la
expresión no ha coincidido con ninguna de las secciones “case”,
entonces se ejecutarán las sentencias de la sección “default”.

En una sección “case” el valor a comparar tal solo puede ser de tipo
entero. Otros lenguajes de programación permiten comparar otros
tipos de datos, o comparar rangos de valores en un solo “case”, o
comparar más de un valor individual en un solo “case”, etc., pero el
lenguaje Arduino no.

Hay que hacer notar que una vez ejecutada una de las secciones “case”
de un bloque “switch” ya no se ejecutan más secciones “case”, aunque
estas también dispongan del resultado correcto de la expresión
evaluada: esto es así gracias a la instrucción “break;”, que
comentaremos en breve. No es necesario ordenar las secciones “case”
según sus valores (de menor a mayor, o de mayor a menor), pero sí es
imprescindible que la sección “default” (en caso de haberla) sea la
última sección, y no puede haber más que una.

También podría gustarte