Como é esta sintaxe?[RESOLVIDO]

5 respostas
A

Oi pessoal, outro dia eu vi um código java assim:

(item == item) ? condicao1 : condicao2;

só que não lembro como que é a sintaxe dele
no caso, como que se escreve ele no programa. Como eu tenho que faze-lo?
uma ajuda rapida plz ^^

brigadão

5 Respostas

sergiotaborda

andre.froes:
Oi pessoal, outro dia eu vi um código java assim:

(item == item) ? condicao1 : condicao2;

só que não lembro como que é a sintaxe dele

Isso é o operador ternário.(procure no google)
A sintaxe é :

condição logica ? resultado_se_verdadeiro : resultado_se_falso

Exemplo

public String oddOrEven(int i){

     return i % 2 == 0 ? "PAR" : "IMPAR";
}

Deve ser usado sempre que usar return e um if.
O exemplo anterior seria normalmente (e erradamente) escrito como :

public String oddOrEven(int i){

     if ( i % 2 == 0){
         return "PAR";
     } else {
          return "IMPAR";
    }

}

Evite o segundo tipo de codigo e use o operador ternário.

B
andre.froes:
Oi pessoal, outro dia eu vi um código java assim:

(item == item) ? condicao1 : condicao2;

só que não lembro como que é a sintaxe dele
no caso, como que se escreve ele no programa. Como eu tenho que faze-lo?
uma ajuda rapida plz ^^

brigadão

item3 = (item == item2) ? resultado se verdadeiro; : resultado se falso;

// é a mesma coisa que:

if (item == item2)
  item3 = resultado se verdadeiro;
else
  item3 = resultado se falso;
robinsonbsilva

Jovem, sua dúvida é em relação ao operador ternário?? ele funciona semelhante a um if

(varClienteNome == varComparacao)? "É IGUAL" : "DIFERENTES"
   //se esta condição for verdadeira o 1º valor é apresentado, senão...
A

Vlw d+ pessoal, essa era a minha dúvida, ja sei como utiliza-lo agora.

Abraços

ViniGodoy

Só um detalhe. O operador ternário:

1. Exige um valor de retorno;

Portanto, esse if não poderia ser subtituido:

if (i % == 2)
   fazUmaCoisa();
else
   fazOutraCoisa();

Já que os métodos não retornam valor.

2. O valor de retorno deve ser do mesmo tipo, nos dois casos.

Esse código pode dar problemas. O java tentará converter o segundo parâmetro para int (tipo do primeiro).
int x = 10;
float y = 20.3f;

double k = x < 3 ? x : y;
Criado 4 de setembro de 2009
Ultima resposta 4 de set. de 2009
Respostas 5
Participantes 5