Seleção caso: Difference between revisions
From Applied Science
(Created page with "* '''Estruturas de seleção com SWITCH e CASE:''' <source lang="c"> 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); } </source> '''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 dese...") Tag: wikieditor |
No edit summary Tag: wikieditor |
||
Line 24: | Line 24: | ||
# 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; | # 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; | # 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 | # 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. |
Latest revision as of 20:44, 20 January 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.