Aninhando operadores ternários
Encadeie decisões com cuidado
Aninhando operadores ternários é uma aula grátis de Java Academy no CoddyKit. Esta é a aula 2 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 é um ternário aninhado
Um ternário aninhado coloca outro ternário dentro de um dos seus ramos.
Isso permite escolher entre três ou mais resultados, em vez de apenas dois.
O resultado é uma cadeia de condições, avaliadas da esquerda para a direita.
int score = 75;
String grade = score >= 90 ? "A" : score >= 80 ? "B" : "C";Como ele se agrupa
O ternário é associativo à direita. Isso significa que o ramo falso absorve o restante da cadeia.
Assim, a ? x : b ? y : z é lido como a ? x : (b ? y : z).
Cada : encaminha para a próxima condição.
// reads as: a ? x : (b ? y : z)
String r = false ? "x" : true ? "y" : "z"; // r = "y"Uma escolha entre três opções
Aqui, um número é classificado como negativo, zero ou positivo.
A primeira condição verifica se ele é negativo; o ramo falso verifica se ele é zero ou positivo.
public class Main {
public static void main(String[] args) {
int n = 0;
String sign = n < 0 ? "negative" : n == 0 ? "zero" : "positive";
System.out.println(sign);
}
}Exemplo de classificação
Um uso clássico é transformar uma nota em uma classificação por letra.
Cada condição é verificada em ordem até que uma seja verdadeira, e a letra correspondente é retornada.
public class Main {
public static void main(String[] args) {
int score = 83;
String grade = score >= 90 ? "A"
: score >= 80 ? "B"
: score >= 70 ? "C" : "F";
System.out.println(grade);
}
}A ordem importa
As condições são testadas de cima para baixo, portanto coloque primeiro a faixa mais específica ou mais alta.
Se você verificasse score >= 70 antes de score >= 90, uma nota 95 pararia incorretamente na primeira correspondência.
// wrong order: 95 would match >= 70 first
int score = 95;
String g = score >= 70 ? "C" : score >= 90 ? "A" : "F"; // g = "C"!Adicionando parênteses para maior clareza
Java não exige parênteses, mas eles tornam o aninhamento evidente para os leitores.
Colocar cada ternário interno entre parênteses mostra exatamente como os ramos se associam.
int n = 5;
String s = n < 0 ? "neg" : (n == 0 ? "zero" : "pos");Formatando em várias linhas
Cadeias longas ficam mais fáceis de ler quando cada condição ocupa sua própria linha.
Alinhe ? e : para que a estrutura pareça uma escada.
public class Main {
public static void main(String[] args) {
int temp = 22;
String label = temp >= 30 ? "hot"
: temp >= 20 ? "warm"
: temp >= 10 ? "cool"
: "cold";
System.out.println(label);
}
}Aninhamento no ramo verdadeiro
Você também pode aninhar um ternário dentro do ramo verdadeiro, embora isso seja menos comum e mais difícil de ler.
Quando fizer isso, é altamente recomendável usar parênteses para evitar confusão.
boolean a = true, b = false;
String r = a ? (b ? "both" : "only a") : "neither";Retornando um ternário aninhado
Um método pode retornar um resultado entre várias opções com um único ternário aninhado.
Isso continua legível para três ou quatro casos, mas fica confuso com mais casos.
public class Main {
static String size(int len) {
return len < 5 ? "short" : len < 10 ? "medium" : "long";
}
public static void main(String[] args) {
System.out.println(size(7));
}
}Saiba quando parar
Dois níveis de aninhamento geralmente são adequados. Três ou mais costumam ficar difíceis de acompanhar.
Quando uma cadeia fica longa, uma estrutura if/else if ou um switch é mais clara e fácil de depurar.
Acompanhando uma cadeia
Acompanhe esta cadeia manualmente: com day = 6, a primeira condição é falsa e a segunda é verdadeira.
Portanto, o resultado é "Saturday", sem verificar o restante.
public class Main {
public static void main(String[] args) {
int day = 6;
String name = day == 7 ? "Sunday"
: day == 6 ? "Saturday" : "Weekday";
System.out.println(name);
}
}Verificação rápida
Teste como os ternários aninhados se agrupam.
Recapitulação
Ternários aninhados encadeiam condições para escolher entre três ou mais valores.
Eles são associativos à direita, portanto o ramo falso absorve o restante; organize suas condições com cuidado.
Adicione parênteses e quebras de linha para obter clareza e mude para if/else quando as cadeias ficarem longas.
Perguntas Frequentes
A aula “Aninhando operadores ternários” é grátis?
Sim — o texto completo de “Aninhando operadores ternários” é 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 “Aninhando operadores ternários”?
Encadeie decisões com cuidado 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 2 de 4.
Quanto tempo leva a aula “Aninhando operadores ternários”?
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.
Todas as aulas deste curso
- O operador ternário
- Aninhando operadores ternários
- Ternário versus if/else
- Armadilhas de legibilidade