Agrupar condições com IF ???
03/10/2007
0
Iniciante em java. :shock:
Seguinte, em SQL tenho o seguinte IF:
IF (teste IN (2,3,5) THEN
....
END IF;
Em java tem como eu agrupar as condições 2, 3 e 5 em um único IF, como acima ou terei que fazer vários IFs ?
Desde já, agradeço.
[]´s
Vitorino.f
Posts
04/12/2007
Renan.cb
de preferencia em fazer o case em ordem crescente.
switch (var)
{
case 0: system.out.println(´ola 0´);
case 1: system.out.println(´ola 1´);
case 5: system.out.println(´ola 5´);
}
nao lembro de cabeça, mas acho que tem q ter um break em cada case.
29/12/2007
Rogerio.noronha
switch (var) { // se for o valor 0, 1 ou 5 imprime ola seguido do valor. case 0: case 1: case 5: system.out.println("ola" + var); break; // se for o valor 2, 3 ou 6 imprime ola seguido do valor. case 2: case 3: case 6: system.out.println("ola" + var); break; }
31/03/2008
Webercuiaba
Pelo que entendi o mais adequado para você é usar uma estrutura if com o operador condicional ´OU´. Tipo assim:
[b:218a84141e]if (teste==2 || teste==3 ou teste==5) {
[i:218a84141e]Comando1[/i:218a84141e]
}[/b:218a84141e]
A estrutura switch case, não me parece a melhor opção por no seu caso existe apenas um caminho de execução apesar de vários valores verdadeiros para o teste condicional. O switch case seria melhor se você tivesse vários caminhos de execução para o mesmo teste.
Quanto ao break do switch ele não é obrigatório para todas as condições, quando você tem um valor verdadeiro e ele tem um break não são testadas as próximas condições, caso não haja o break executa o código e continua testando as demais condições.
Então caso deseje fazer um swtch com o mesmo resultado não pode usar break e deve repetir os mesmo comando:
[b:218a84141e]switch (teste)
{
// se for o valor 2, 3 ou 5
case 2:
case 3:
case 5: [i:218a84141e]Comando1[/i:218a84141e];
//Caso queira simular um else
break;
default:
//Aqui entra o comando para o else.
} [/b:218a84141e]
Espero ter ajudar. Boa sorte.
10/08/2008
Discorpio
Existe uma outra maneira de voce tratar isso.
Na verdade, essa maneira é um truque, que voce usará convertendo os valores para String, e utilizando o método IndexOf para localizar uma substring.
Complicado :?:
Não se voce aplicar assim:
Integer teste = 4; if (teste.toString().indexOf("2,3,4") >= 0){ };
Porém devo alertá-lo que voce só conseguirá fazer isso, se o número inteiro for declarado como do tipo da classe Integer que tem uma outra maneira especial de tratar números inteiros.
Se o seu número inteiro estiver declarado com o tipo primitivo Int, então esqueça tudo o que eu disse acima, e siga o exemplo do nosso amigo Webercuiaba.
Clique aqui para fazer login e interagir na Comunidade :)