Declaración if de una línea en Java

Rashmi Patidar 12 octubre 2023
  1. Operador ternario en Java
  2. Declaración if-else de una línea usando filter en Java 8
Declaración if de una línea en Java

Hay 52 palabras clave o palabras predefinidas en el lenguaje Java. Llamamos a estas palabras reservadas porque tienen un significado específico predefinido en el idioma.

De este grupo de palabras reservadas, if-else es una de ellas. Usamos esta palabra clave para especificar cualquier condición. La estructura del bloque if-else se ve así:

if (condition == true) {
  doThis;
} else {
  doSomethingElse;
}

Podemos dar cualquier expresión en la condition presente entre paréntesis ().

Si la expresión en el bloque if da como resultado verdadero, entonces, se ejecutará la instrucción doThis. Y si una expresión se evalúa como falsa, entonces se debe ejecutar doSomethingElse.

Como podemos ver, consume cinco líneas para hacer una operación simple de tipo if-else. La alternativa a este tipo de evaluaciones es utilizar operadores ternarios.

Operador ternario en Java

Un operador ternario es una forma abreviada de la declaración if-else de Java. La sintaxis de este operador se define a continuación.

condition ? expression1 : expression2;

En la declaración anterior, primero se evalúa la condition. Si condition se evalúa como verdadera, entonces se ejecuta expression1. Y si condition se evalúa como false, entonces se ejecuta expression2.

Como el operador anterior toma tres condiciones de operandos y dos expresiones, se le denomina operador ternario.

A continuación se muestra el programa de muestra para demostrar lo mismo.

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);
  }
}

En el programa anterior, marks>70 es la condición if. ? es la cláusula entonces y : es parte de else.

El programa debe evaluar si las marcas son más que un número predefinido o no. Como la condición que es marcas> 70 se evalúa como falsa, No se imprime en la salida de la consola.

La salida del programa anterior es la siguiente.

Has made a distinction: No

Declaración if-else de una línea usando filter en Java 8

Java 8 y versiones superiores tienen la utilidad de streams. El método de filter de secuencias toma un predicado y se comporta como if-else en el lenguaje 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);
  }
}

El programa anterior crea una instancia de una lista usando el método Arrays.asList(). Aquí hemos dado 1 y 2 como valores de cadena. Ahora hemos hecho un flujo de esta lista usando la función flujo. Una vez que creamos la secuencia, se aplica la función filter. Esta función filtra los datos según la condición definida. El operador -> se denomina operador lambda. Itera cada valor de la secuencia en la función filter. Y si se cumple la condición, el valor pasa al método forEach() para realizar las acciones finales.

Como no hay ningún caso definido para manejar la condición else, el valor simplemente se omitirá y se eliminará.

Y la salida del programa anterior se da a continuación:

1
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

Artículo relacionado - Java Statement