Operador Ternário

O operador condicional, ? :, conhecido como operador ternário, é apenas um operador que tem três operandos:

expressaoBoolean ? expressão1 : expressão2

O primeiro operando precisa ser uma expressão booleana, e o segundo e terceiro pode ser qualquer expressão que retorne um valor.

A operação ternária é na verdade uma forma condensada da declaração if-else que retorna um valor. Esses dois códigos são equivalentes:

A seguir um código equivalente:

Veja que muitas vezes ajuda para a legibilidade adicionar parênteses em torno das expressões nas operações ternárias, mas não é necessário.

Não é necessário que a segunda e terceira expressão ternária tenha o mesmo tipo de dados, mas deve combinar com os outros operadores. Veja as seguintes duas declarações:

Ambas expressões têm valores booleanos similares e retorna um int e uma String, contudo somente a primeira linha compila.

O System.out.println() não importa se a declaração são tipos completamente diferente, porque ambos podem ser convertidos para String.

Contudo, o compilador sabe que “Cavalo” é um tipo de dado errado para atribuir ao int, por isso, a compilação não acontece.

Avaliação de Expressões Ternária

Apenas a expressão a direita da operação ternária será avaliada em tempo de execução. Similar ao operador short-circuit, pode acontecer que uma das duas expressões da direita ser executada, isso não é aplicado em tempo de execução. Exemplo:

Veja que a expressão a esquerda foi verdadeira, apenas y foi incrementado. Vamos inverter a situação:

Veja que a expressão a esquerda foi falsa, apenas z foi incrementado.

Dessa maneira, vimos que a expressão ternária pode executar apenas uma expressão particular.

Fonte: OCA – Oracle Certified Associate Java SE 8 Programmer I – Study Guide

Para enviar seu comentário, preencha os campos abaixo:

Deixe um comentário

*

Seja o primeiro a comentar!