• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

carloskick

switch

6 mensagens neste tópico

tenho uma função com um switch k tem varios cases com as mesma condiçoes a serem executadas, o k faz com a função seja comprida o k a torna ilegivel...gostaria de saber se ha possibilidade ou alguma forma de escrever APENAS UMA VEZ as condições a serem executadas para esses cases...

obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Caso o case 1, 2 e 3 tenham as mesmas instruções, podes fazer:

switch (opcao) {
case 1:
case 2:
case 3: //fazer cenas;
	break;
...
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se bem percebi, tens algo do género

switch (i) {
    case 1:
        value = 10; break;
    case 2:
        value = 10; break;
    case 3:
        value = 10; break;
    case 4:
        value = 10; break;
    case 5:
        value = 10; break;
    case 6:
        value = 20; break;
    default:
        value = 0;
}

Se for esse o caso, podes remover os breaks e os cases fazem um efeito "cascata":

switch (i) {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
        value = 10; break;
    case 6:
        value = 20; break;
    default:
        value = 0;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Basicamente o que o break faz eh acabar com o ciclo em que esta, se fizeres break no primeiro case e se for executado, acaba com o ciclo

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O switch não é uma instrução de ciclo, é uma instrução de controlo de execução. Ciclos, são for, while, do ... while.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Caso tenhas sempre as mesmas instruções e apenas acrescentas uma ou duas instruções em cada case então este método não é viável e podes ter que fazer uma função com esse código repetido.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora