HOWTO · Java
Java One Line if Declaração
Este artigo apresenta a instrução Java if de uma linha
Nesta página
Existem 52 palavras-chave ou palavras predefinidas na linguagem Java. Chamamos essas palavras de reservadas, pois têm algum significado predefinido específico no idioma.
Fora desse conjunto de palavras reservadas, if-else é uma delas. Usamos esta palavra-chave para especificar qualquer condição. A estrutura do bloco if-else é semelhante a esta:
if (condition == true) {
doThis;
} else {
doSomethingElse;
}
Podemos dar qualquer expressão na condition presente entre parênteses ().
Se a expressão no bloco if resultar em true, então, a instrução doThis será executada. E se uma expressão for avaliada como falsa, então doSomethingElse deve ser executado.
Como podemos ver, ele consome cinco linhas para fazer um tipo de operação simples if-else. A alternativa a esse tipo de avaliação é o uso de operadores ternários.
Operador ternário em Java
Um operador ternário é uma forma abreviada da instrução Java if-else. A sintaxe deste operador é definida a seguir.
condition ? expression1 : expression2;
Na declaração acima, a condition é avaliada primeiro. Se condition for avaliada como verdadeira, então expression1 é executada. E se condition for avaliada como false, então expression2 será executada.
Como o operador acima aceita três condições de operandos e duas expressões, ele é conhecido como operador ternário.
Abaixo está o programa de exemplo para demonstrar o mesmo.
package ternaryOperator;
public class TernaryOperator {
public static void main(String[] args) {
int marks = 67;
String distinction = marks > 70 ? "Yes" : "No";
System.out.println("Has made a distinction : " + distinction);
}
}
No programa acima, marks>70 é a condição if. ? é a cláusula then e : é else parte dela.
O programa deve avaliar se as marcas são mais do que um número predefinido ou não. Como a condição que é marks > 70 é avaliada como falsa, No é impresso na saída do console.
A saída para o programa acima é a seguinte.
Has made a distinction: No
Instrução if-else de uma linha usando filter em Java 8
Java 8 e versões superiores têm a utilidade de streams. O método de filter de streams recebe um Predicado e se comporta como if-else na linguagem Java.
package streams;
import java.util.Arrays;
import java.util.List;
public class Java
8Streams {
public static void main(String[] args) {
List<String> stringList = Arrays.asList("1", "2");
stringList.stream().filter(string -> string.equals("1")).forEach(System.out::println);
}
}
O programa acima instancia uma lista usando o método Arrays.asList(). Aqui, fornecemos 1 e 2 como os valores de String. Agora fizemos um stream desta lista usando a função stream. Depois de criar o fluxo, a função filter é aplicada. Esta função filtra os dados com base na condição definida. O operador -> é chamado de operador lambda. Ele itera cada valor do fluxo na função filter. E se a condição for satisfeita, o valor vai para o método forEach() para executar as ações finais.
Como não há nenhum caso definido para lidar com outra condição, o valor será simplesmente ignorado e descartado.
E o resultado do programa acima é dado abaixo:
1