Agrupar condições com IF ???

03/10/2007

1

Opa,

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
Responder

Posts

26/11/2007

Onion

kra creio que nao, acho que vc vai ter ki rodar varios ifs =/
Responder

04/12/2007

Renan.cb

se o teste for com numeros (int) pode fazer um case, mais bonito. hehehe
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.
Responder
Supondo que que queira testar o valor de um byte, int ou char, faça o seguinte:

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

Responder

31/03/2008

Webercuiaba

Olá vitorino.

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.
Responder

10/08/2008

Discorpio

Boa noite a todos.

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.
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira