Duvida operadores

2 respostas
W

Boa noite pessoal,
Comecei a estudar java essa semana, fiz o download da apostila da Algaworks Fundamentos Java e Orientação a objetos que está me ajudando bastante.
Então surgiu a primeira duvida que não consegui esclarecer através da apostila pois a apostila ainda esta em desenvolvimento então é claramente aceitável. Desculpe se isto estiver na apostila e eu estiver falando besteira.
Então a duvida é a seguinte:

Eu entendi que se a entrada for 1 a variável sexo receberá M senão receberá F.

char sexo = entrada.nextShort() == 1 ? ‘M’ : ‘F’;

O que é “?” e “:” ?

2 Respostas

wagnerfrancisco

Isto é um operador ternário. Um if e else reduzido. É o mesmo que:

char sexo;
if (entrada.nextShort() == 1) {
   sexo = 'M';
} else {
   sexo = 'F';
}

Ou seja, antes do ?, você faz uma comparação. Se for true, ela entra na primeira condição (antes dos : ), caso contrário, entra na última parte. Um if/else mais compacto e que vai lhe retornar o valor avaliado.

W

Muito obrigado wagnerfrancisco, foi muito bem esclarecido minha duvida.
Agora foi continuar com meus estudos aqui vlw.

Criado 4 de agosto de 2012
Ultima resposta 4 de ago. de 2012
Respostas 2
Participantes 2