Operador Ternário
Como podemos simplificar uma declaração if-else?
A declaração if
pode nem sempre parecer elegante, mas o Java oferece uma forma mais rápida e conveniente de verificar condições. Ela é chamada de operador ternário, e possui a seguinte sintaxe:
condition ? expression_for_true : expression_for_false
Primeiro, define-se uma condição, por exemplo, 10 > 5
, e em seguida coloca-se um ponto de interrogação ?
após ela. Se a condição for avaliada como true
, segue-se para o bloco verdadeiro, por exemplo, System.out.println("That's true");
. Se a condição for avaliada como false
, segue-se para o bloco falso, onde pode haver algo como System.out.println("That's not true");
.
Vamos analisar um exemplo mais prático:
Main.java
package com.example; public class Main { public static void main(String[] args) { System.out.println(10 > 5 ? "That's true" : "That's false"); System.out.println(5 > 6 ? "That's true" : "That's false"); } }
Você pode ter notado que usamos o operador ternário dentro da instrução System.out.println();
. Esse é o principal objetivo de utilizar o operador ternário – ele pode ser usado em instruções de saída para reduzir significativamente a quantidade de código.
Também é possível utilizar o operador ternário ao inicializar ou retornar valores. Você aprenderá mais sobre retorno de valores na próxima seção, quando estudar métodos.
Exemplo de uso do operador ternário ao inicializar um valor:
Main.java
package com.example; public class Main { public static void main(String[] args) { final int a = 10 > 2 ? 5 : 2; final int b = 10 < 2 ? 5 : 2; System.out.println("Variable 'a' has value: " + a); System.out.println("Variable 'b' has value: " + b); } }
Abaixo está um exemplo de código onde o operador ternário é substituído por uma instrução if
regular para ajudar a entender melhor como ele funciona:
Main.java
package com.example; public class Main { public static void main(String[] args) { int a = 0; int b = 0; if (10 > 2) { a = 5; } else { a = 2; } if (10 < 2) { b = 5; } else { b = 2; } System.out.println("Variable 'a' has value: " + a); System.out.println("Variable 'b' has value: " + b); } }
O resultado é o mesmo, mas é possível perceber quanto espaço economizamos ao utilizar o operador ternário.
Swipe to start coding
-
Escreva um código que exiba
"The string contains Florida"
se a string contiver a palavra Florida, ou"Florida is not found"
se não contiver. -
Utilize o operador ternário para praticar seu uso.
Solução
solution.java
Obrigado pelo seu feedback!