switch...case
switch (variável) { case valor: ... break; }
Quando você precisa comparar a mesma variável com vários valores possíveis, o switch...case deixa tudo mais limpo do que uma pilha de if...else. Ele salta direto para o case que bate com o valor e roda até encontrar um break.
Sintaxe
switch (variável) {
case valor1:
// ...
break;
case valor2:
// ...
break;
default:
// quando nenhum bate
break;
}
Parâmetros
- variável: valor inteiro (
int,char,byte...) que será comparado. - case valorN: cada valor constante possível a comparar.
- default (opcional): roda quando nenhum
casebate.
Retorno
Nada (void).
Exemplo
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available()) {
char comando = Serial.read();
switch (comando) {
case 'a':
Serial.println("Acendendo");
break;
case 'd':
Serial.println("Desligando");
break;
default:
Serial.println("Comando invalido");
break;
}
}
}
Notas e cuidados
- Sempre coloque
breakno fim de cadacase; sem ele o código "vaza" para o próximo caso (o famoso fall-through). - Só funciona com valores inteiros/constantes — não dá para usar faixas (
x > 10) nemString. - Omitir o
breakde propósito é uma técnica válida para agrupar casos, mas comente para não parecer erro.