Operador condicional ?:

Oi.
Estava lendo um manual e encontrei um tal de operador condicional (?:), mas não encontrei nenhum exemplo mostrando o uso desse operador.
Alguma alma caridosa poderia me dar um exemplo de como se usa isso?
Valeu :joia:

PS.: Não sei o que aconteceu, mas já é a segunda vez que coloco essa mensagem aqui no PJ… a minha primeira mensagem sumiu!!! :confuso:
Sei lá, será que essa minha pergunta é tão idiota pra algum moderador remover a mensagem? :oops:
Desculpe se isso aparecer duplicado… não é a minha intenção…

Isso é uma forma diferente de fazer o if e o else ex:

[code]
if(i==0){
y=1
}
else{
y=2
}

( i == 0 ) ? y = 1 : y = 2;

é isso não tem aspas…maus

[/code] :wink:

o código não fica assim não?

if(i==0)? y=1:y=2;

caras isso eh um if ternario uso todos os dias em todos os codigos ele eh mais rapido que um if comum e muito compreensivel deixa o codigo claro limpinho.

sintaxe:
(<condicao> ? <valor1> : <valor2>)
se condicao for true, retorna valor 1 se nao valor2

[quote=“jujo”]o código não fica assim não?

if(i==0)? y=1:y=2; [/quote]

tira esse if jujo, é só:

( i == 0 ) ? y = 1 : y = 2; [/code]

Valeu pelas respostas mas nenhum exemplo funcionou aqui no meu computador… não sei, mas posso estar fazendo algo de errado… :confuso:
Tentei montar esse código, baseado na resposta do Matheus:

class Exemplo
 {
   public static void main (String args [])
    {
      int x, y;
      ( x == 0 ) ? y = 1 : y = 2;
      System.out.println (y);
    }
 }

Isso dá erro na linha do operador condicional ?: ; o que está errado nisso? :confuso:
Valeu de novo pessoal :joia:

o x tem q ser iniciado:

import javax.swing.*;
class Exemplo 
 { 
   public static void main (String args []) 
    { 
      int x, y; 
      x = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite um numero"));
      y = ( x == 0 ) ? 1 : 2; 
      System.out.println (y); 
    } 
 } 

testa isso… deve funcionar…

O que vc deve esta querendo fazer é o seguinte:

class Exemplo 
 { 
   public static void main (String args []) 
    { 
      int x = 0, y; 
      y = ( x == 0 ) ? 1 : 2; 
      System.out.println (y); 
    } 
 }

Quando x for 0 retorna em y = 1, caso contrário retorna em y = 2.
Segundo, vc não tinha inicializado x. Lembra que dentro de métodos vc deve inicializar explicitamente os atributos, não é como os atributos de escopo de classe, que são inicializados com valores default.

E outra, sempre o valor de uma condição ternária, deve ser retorna em algum atributo ou como retorna de uma função. Por exemplo,

class Exemplo 
 { 
   public static void main (String args []) 
    { 
      int x = 0, y; 
      ( x == 0 ) ? 1 : 2; 
      System.out.println (y); 
    } 
 }

Isso ocorrei um erro de sintaxe, pois não retorna em lugar nenhum o retorno da condição ternária.

blz?

sendo mais economico ainda, so pra ter ideia;

int x = 0;
System.out.println((x == 0?"zero":"nao zero"));

Ah… valeu a todos que responderam :wink:
É bem legal esse operador condicional… Agora só preciso treinar como usar isso… :joia:

[quote=“Candahar”]Ah… valeu a todos que responderam :wink:
É bem legal esse operador condicional… Agora só preciso treinar como usar isso… :joia:[/quote]

Kara, to morrendo de rir do seu avatar… muito bem bolado…

:galera: