case 1 ;
{
printf ("CONSULTAR ALGUMAS CALORIAS\n");
printf("\n1-Salgado");
printf("\n2-Doces");
printf("\n3-Bebidas");
printf("\nEscolha uma das categorias que deseja consultar:");
scanf("%d",&escolha);
}
Agradeço quem responder.
Mateus
Convite para o Netlog :
http://pt.netlog.com/go/register/friend=mateuscps
Note que é também possível declarar variáveis dentro do 'switch', antes
do primeiro 'case'. Poucos sabem disso, e é útil para variáveis que são
comuns a todos os 'case's.
switch (test) {
int i, j;
case 0:
...
}
Só um grande porém: variáveis declaradas no bloco do switch não podem
ser inicializadas na declaração.
--
Juliano F. Ravasi ·· http://juliano.info/
5105 46CC B2B7 F0CD 5F47 E740 72CA 54F4 DF37 9E96
"A candle loses nothing by lighting another candle." -- Erin Majors
* NOTE: Don't try to reach me through this address, use "contact@" instead.
Isso acontece mesmo?
Nao parece me fazer muito sentido. Afinal, se a variavel b possui valor 1, pq entrar no case 2?
Penso que o break serve pra uma otimização ou algo assim, pra nao fazer iterações desnecessarias. Nao seria isso?
Outro bom exemplo é o "Dispositivo de Duff", uma forma de otimização de
laços: http://en.wikipedia.org/wiki/Duff's_device
O 'switch' tem esse aspecto porque ele é basicamente uma forma de
'goto'. Os 'case's e o 'default' são representados como rótulos
(terminados em ":"), e devem ser considerados como tal, ou seja, a
execução passa através do rótulo. O 'switch' é um 'goto' controlado pelo
valor da expressão fornecida, que pula a execução para um determinado
rótulo, e continua dali para frente, daí a necessidade do 'break'.

Talvez pudéssemos sugerir isso para os comitês de padronização da
linguagem. C99 e C++0x foram desenvolvidos através do feedback dos
próprios programadores.
Poderia ser sugerido uma nova sintaxe de switch/case de mais alto nível,
totalmente distinta da atual, por exemplo:
switch (test) {
case(1) {
...
}
case(2) {
...
}
default {
...
}
}
Basicamente, para diferenciar do uso antigo, exigir '(' como próximo
token depois do 'case', e BlockStatement ao invés de ':' após a
expressão de teste.
Uma coisa que teria que se pensar é sobre o caso:
case 1:
case 2:
case 3:
...
break;
Uma possibilidade talvez seria:
case(1, 2, 3) {
...


O tratamento não é estranho, é bem normal:
