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