Como é esta sintaxe?[RESOLVIDO]

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

[quote=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
[/quote]

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.

[quote=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[/quote]

[code]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;
[/code]

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

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

Abraços

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.

  1. 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).

[code]
int x = 10;
float y = 20.3f;

double k = x < 3 ? x : y;[/code]