O operador ternário
condition ? a : b
O operador ternário é uma aula grátis de Java Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Java Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Java Academy inclui 4 aulas no total.
O que é o operador ternário
O operador ternário é o único operador de Java que recebe três operandos. Ele é uma forma compacta de escolher entre dois valores com base em uma condição.
Seu formato é: condition ? valueIfTrue : valueIfFalse.
Ele produz um valor, portanto você pode atribuí-lo ou passá-lo diretamente.
int age = 20;
String status = age >= 18 ? "adult" : "minor";As três partes
A primeira parte é uma condição booleana. O ? a separa dos resultados.
Se a condição for verdadeira, a expressão resultará na parte anterior a :. Se for falsa, resultará na parte posterior a :.
Apenas um dos dois ramos é realmente avaliado.
int score = 45;
String result = score >= 50 ? "pass" : "fail";Um exemplo completo em execução
Este é um programa completo que imprime um rótulo com base em um número.
A condição n % 2 == 0 decide se deve usar "even" ou "odd".
public class Main {
public static void main(String[] args) {
int n = 7;
String parity = n % 2 == 0 ? "even" : "odd";
System.out.println(parity);
}
}É uma expressão
Diferentemente de uma instrução if, um ternário é uma expressão: ele tem um valor.
Isso significa que você pode usá-lo dentro de chamadas de método, retornos e atribuições, onde uma instrução não se encaixaria.
public class Main {
public static void main(String[] args) {
int a = 9, b = 4;
System.out.println("Max is " + (a > b ? a : b));
}
}Escolhendo números
Os dois ramos não precisam ser cadeias de caracteres. Aqui, o ternário escolhe o maior entre dois inteiros.
O resultado é um int que você pode armazenar e reutilizar.
public class Main {
public static void main(String[] args) {
int x = 12, y = 30;
int max = x > y ? x : y;
System.out.println(max);
}
}Os dois ramos devem ter tipos compatíveis
Java precisa conhecer o tipo da expressão inteira, portanto os dois ramos devem ter tipos compatíveis.
Se um ramo for um int e o outro for uma String, o código não será compilado.
Mantenha os dois lados com o mesmo tipo de valor.
boolean ok = true;
// valid: both ints
int code = ok ? 200 : 404;
// invalid: int vs String would not compileRetornando de um método
Os ternários são especialmente úteis dentro de instruções return, substituindo uma estrutura se/senão de quatro linhas por uma linha.
O método abaixo retorna o valor absoluto de um número.
public class Main {
static int abs(int n) {
return n < 0 ? -n : n;
}
public static void main(String[] args) {
System.out.println(abs(-8));
}
}Usando-o na saída
Você pode inserir um ternário diretamente dentro de uma chamada de impressão.
Coloque-o entre parênteses ao concatenar, para que ? e : sejam agrupados antes que + concatene o texto.
public class Main {
public static void main(String[] args) {
int items = 0;
System.out.println("Cart: " + (items == 0 ? "empty" : "has items"));
}
}Escolhendo uma saudação
Um uso comum é selecionar uma entre duas mensagens.
A condição verifica um sinalizador booleano, e o ternário escolhe o texto de saudação correspondente.
public class Main {
public static void main(String[] args) {
boolean morning = true;
String greet = morning ? "Good morning" : "Hello";
System.out.println(greet);
}
}Precedência de operadores
O ternário tem precedência muito baixa, portanto as operações aritméticas e as comparações dentro dele são executadas primeiro.
Em a + b > 10 ? "big" : "small", Java calcula a + b, faz a comparação e então escolhe um ramo.
Adicione parênteses ao misturá-lo com + para concatenar cadeias de caracteres.
int a = 6, b = 7;
String size = a + b > 10 ? "big" : "small";Atribuindo com base na entrada
Os ternários são ótimos para inicializar uma variável em uma única etapa.
Aqui, uma taxa é definida como zero para membros e como um valor fixo nos demais casos.
public class Main {
public static void main(String[] args) {
boolean isMember = false;
double fee = isMember ? 0.0 : 9.99;
System.out.println(fee);
}
}Verificação rápida
Teste sua compreensão da sintaxe do ternário.
Recapitulação
O operador ternário condition ? a : b é a expressão condicional compacta de três partes de Java.
Ele retorna um valor, avalia apenas um ramo e precisa de tipos compatíveis nos dois lados.
Use-o para atribuir, retornar ou imprimir um entre dois valores de forma clara.
Perguntas Frequentes
A aula “O operador ternário” é grátis?
Sim — o texto completo de “O operador ternário” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Java Academy, atualize para CoddyKit PRO. O curso de Java Academy inclui 4 aulas no total.
O que vou aprender em “O operador ternário”?
condition ? a : b Você pratica Java Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Java Academy?
Nenhuma experiência prévia é necessária. Java Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “O operador ternário”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Java Academy?
Sim. Cada aula de Java Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.