Seleção caso: Difference between revisions
From Applied Science
No edit summary Tag: wikieditor |
No edit summary Tag: wikieditor |
||
| Line 26: | Line 26: | ||
# O comando ''''default'''' é equivalente ao ''''else''''. Não tem um ''''break'''' pois ele sempre é verificado por último; | # O comando ''''default'''' é equivalente ao ''''else''''. Não tem um ''''break'''' pois ele sempre é verificado por último; | ||
# Comparações compostas com mais de uma variável não são usadas com blocos '''switch case'''. Seria muito custoso reescrever '''if else''' com comparações compostas para o formato '''switch case'''. Quando mais de um valor corresponde a uma escolha, seria loucura cobrir todos os casos um por um. | # Comparações compostas com mais de uma variável não são usadas com blocos '''switch case'''. Seria muito custoso reescrever '''if else''' com comparações compostas para o formato '''switch case'''. Quando mais de um valor corresponde a uma escolha, seria loucura cobrir todos os casos um por um. | ||
[[category:introdução_à_computação]] | |||
Latest revision as of 16:54, 12 November 2025
- Estruturas de seleção com SWITCH e CASE:
int escolha;
switch (escolha) {
case 1:
printf("Voce escolheu 1");
break;
case 2:
printf("Voce escolheu 2");
break;
case 3:
printf("Voce escolheu 3");
break;
default:
printf("Voce escolheu %d (nenhuma das anteriores)", escolha);
}
Diferença entre switch case para if else. Não há diferenças quanto ao comportamento do programa. O que muda é a sintaxe e o desempenho em algumas situações (desempenho não é uma preocupação na introdução). A grande diferença está no uso. Com switch case não há operadores booleanos and, or e not. Também não há expressões como "maior ou igual" e "menor ou igual". Ele funciona como uma lista de opções, onde cada opção é um valor inteiro. switch case é melhor de entender quando há escolhas mutuamente exclusivas. Isto é, uma não tem relação de dependência com as demais.
- Mais de um caso pode corresponder à mesma escolha, por exemplo: deixe um 'case 1:' logo na linha acima do 'case 2:' Isso fará o printf() ser executado tanto no caso 1 quanto no 2;
- Sem o comando 'break' o programa não termina a execução no caso satisfeito e continua para o próximo caso logo abaixo. É estranho comparado a else if, mas na linguagem funciona assim mesmo. Numa introdução não são feitos programas que se utilizem deste fato;
- O comando 'default' é equivalente ao 'else'. Não tem um 'break' pois ele sempre é verificado por último;
- Comparações compostas com mais de uma variável não são usadas com blocos switch case. Seria muito custoso reescrever if else com comparações compostas para o formato switch case. Quando mais de um valor corresponde a uma escolha, seria loucura cobrir todos os casos um por um.