Ir para o conteúdo
carloskick

switch

Mensagens Recomendadas

carloskick    0
carloskick

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Baderous    31
Baderous

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;
...
}

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
TheDark    0
TheDark

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;
}

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rat    0
Rat

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pedrosorio    5
pedrosorio

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.

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade