HOWTO · Java

Java una linea if instruzione

Questo articolo introduce l'istruzione if di una riga di Java

In questa pagina

Ci sono 52 parole chiave o parole predefinite nel linguaggio Java. Chiamiamo queste parole riservate poiché hanno un significato predefinito specifico nella lingua.

Fuori da questo pool di parole riservate, if-else è una di queste. Usiamo questa parola chiave per specificare qualsiasi condizione. La struttura del blocco if-else è simile a questa:

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

Possiamo dare qualsiasi espressione nella condition presente tra parentesi ().

Se l’espressione nel blocco if risulta vero, l’istruzione doThis verrà eseguita. E se un’espressione restituisce false, allora dovrebbe essere eseguito doSomethingElse.

Come possiamo vedere, occorrono cinque righe per eseguire un semplice tipo di operazione if-else. L’alternativa a questo tipo di valutazioni è utilizzare operatori ternari.

Operatore ternario in Java

Un operatore ternario è una forma abbreviata dell’istruzione if-else di Java. La sintassi di questo operatore è definita come di seguito.

condition ? expression1 : expression2;

Nell’affermazione precedente, viene valutata per prima la condition. Se condition restituisce true, viene eseguita expression1. E se condition restituisce false, viene eseguita expression2.

Poiché l’operatore precedente accetta tre condizioni di operandi e due espressioni, viene indicato come operatore ternario.

Di seguito è riportato il programma di esempio per dimostrare lo stesso.

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

Nel programma di cui sopra, marks>70 è la condizione if. ? è la clausola then e : è else parte di essa.

Il programma dovrebbe valutare se i segni sono più di un numero predefinito o meno. Poiché la condizione marks > 70 viene valutata falsa, No viene stampato sull’output della console.

L’output per il programma di cui sopra è il seguente.

Has made a distinction: No

Istruzione if-else di una riga che utilizza filter in Java 8

Java 8 e versioni successive hanno l’utilità dei flussi. Il metodo filter dei flussi accetta un Predicato e si comporta come if-else nel linguaggio 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);
  }
}

Il programma precedente crea un’istanza di una lista utilizzando il metodo Arrays.asList(). Qui abbiamo dato 1 e 2 come valori String. Ora abbiamo creato un flusso di questo elenco utilizzando la funzione stream. Una volta creato lo stream, viene applicata la funzione filter. Questa funzione filtra i dati in base alla condizione definita. L’operatore -> è chiamato operatore lambda. Itera ogni valore del flusso nella funzione filter. E se la condizione è soddisfatta, il valore va al metodo forEach() per eseguire le azioni finali.

Poiché non è stato definito alcun caso per gestire la condizione else, il valore deve essere semplicemente bypassato e verrà eliminato.

E l’output del programma sopra è dato di seguito:

1