O operador ?
- O operador
?
é usado para substituir instruções if-else.
if (condição)
var = expression1;
else
var = expression2;
- O operador ? é chamado de operador ternário porque requer três operandos.
Exp1 ? Exp2 : Exp3;
Exp1 é uma expressão booleana e Exp2 e Exp3 são expressões de qualquer tipo menos void.
Exemplo:
if (val < 0)
absval = -val;
else
absval = val;
- Em ternário:
absval = val < 0 ? -val : val;
result recebe o resultado da divisão de 100 por i.
A divisão só ocorre se i não for zero; caso contrário, result recebe o valor zero.
O valor produzido pelo operador ? não precisa ser atribuído a uma variável.
O valor do operador ? pode ser usado como argumento em uma chamada de método.
Se as expressões forem do tipo boolean, o operador ? pode ser usado como expressão condicional em um laço ou instrução if.
O programa pode ser reescrito de forma mais eficiente, mantendo o mesmo resultado.
- Se i for zero, a instrução if resultará em falso, evitando a divisão por zero e a exibição do resultado. Caso contrário, a divisão ocorrerá.