Skip to main content

Command Palette

Search for a command to run...

Operador ternário em Java

Updated
2 min read
Operador ternário em Java
A
My name is Lucas. I'm a journalist and software developer who can take photos, print zines and make videos, that's no joke. 📸📰🎬💻🕺😅

Em muitas ocasiões, precisamos atribuir diferentes valores para uma variável dependendo de uma determinada condição. Você pode fazer isso de forma conveniente com o uso do operador ternário.

O operador ternário, portanto, provê uma forma sintética de redigir expressões condicionais.

Como uma alternativa menos verbosa às declarações if-else, é possível usar o operador ternário para obter o mesmo resultado de forma mais concisa.

O que é um operador Ternário?

  • É um operador que avalia uma condição e escolhe qual dos dois casos deve ser executado.

  • Pode ser considerado uma forma concisa de if-else.

  • Apesar das semelhanças, o operador ternário não é o mesmo que uma declaração condicional.

  • Esse operador poderá ser usado em locais onde uma expressão for esperada.

  • Em alguns casos o operador ternário pode ser mais legível que sua versão correspondente com if-else.

Exemplo:

int a = ...;
int b = ...;
int max = ...;

if (a > b) {
    max = a;
} else {
    max = b;
}

Poderia ser expresso como:

int max = a > b ? a : b;

O operador ternário portanto é composto por:

result = condition ? trueCase : elseCase;

Onde:

  • condition = Condição que será avaliada
  • trueCase = Valor retornado se a condição for verdadeira.
  • elseCase = Valor retornado se a condição for falsa.

Exemplo de código para retornar se um número é par ou ímpar:

int num = ...;  // it's initialized by a value
System.out.println(num % 2 == 0 ? "even" : "odd");

Atenção: Parece maravilhoso não é? Entretanto, o uso do operador ternário deve ser feito com cautela, em casos onde uma decisão rápida e concisa faz sentido. Não seria uma boa prática usar o operador ternário apenas para reduzir a quantidade de código, arriscando prejudicar a legibilidade do nosso código.