Kotlin: if, else e when

if – else

L’istruzione if in Kotlin è una funzione che torna un valore. Proprio per questo motivo non è necessaria l’esistenza di un operatore ternario. Quindi, ad esempio, l’espressione ternaria del C++:

int i = condizione ? 10 : 20;

può essere tradotta in Kotlin nella forma:

val i : Int = if (condizione) 10 else 20

Le istruzioni da eseguire condizionalmente, se più di una, possono essere racchiuse in parentesi graffe. Se in un blocco if è assegnata il valore di una variabile o c’è il return di una funzione, allora il blocco else è obbligatorio.

In Kotlin quindi è possibile usare il blocco if – else non solo per eseguire condizionalmente pezzi di codice ma anche per attribuire ad una variabile un determinato valore. Ovviamente è possibile annidare blocchi di if.

Esempio di utilizzo per assegnare il valore ad una variabile

val returnValue = if (condizione) {
"condizione verificata"
} else {
"condizione non verificata"
}

Esempio di utilizzo per eseguire un blocco di istruzioni

if(condizione1) {
println("eseguito blocco 1")
} else if (condizione2) {
println("eseguito il blocco 2")
} else {
println("eseguito il blocco 3")
}

when

Il costrutto when definisce una espressione condizionale con condizioni multiple, l’analogo dell’istruzione switch del Java o del C++. Per fare ciò, l’istruzione when confronta progressivamente il suo argomento con tutte le condizioni previste, fermandosi quando si raggiunge quella uguale. when può essere utilizzata sia come espressione (expression) che come dichiarazione (statement). Nel primo caso il valore della condizione verificata diventa il valore assegnato ad una variabile. Nel secondo caso invece è una funzione da eseguire (l’insieme delle istruzioni può essere racchiuso da delle parentesi graffe).

E’ possibile utilizzare il costrutto else per indicare l’insieme di tutti i casi che non soddisfano nessuna condizione esplicita riportata. Quando è usata come espressione, l’opzione else diventa obbligatoria. Nel caso in cui più condizioni eseguono lo stesso blocco di codice, allora le condizioni possono essere riportate separate da una virgola. Le condizioni inoltre possono essere costituite non solo da valori ma anche da espressioni (ad esempio funzioni o condizioni con is o !is). E’ possibile infine utilizzare le istruzioni in e !in come condizione di appartenza o meno ad una collezione. Spesso when è utilizzato per sostituire catene di if ed else if.

Esempio di utilizzo per assegnare il valore ad una variabile:

var number = 4
var numberProvided = when(number) {
1 -> "One"
2 -> "Two"
3 -> "Three"
else -> "Invalid number"
}

Esempio di utilizzo per eseguire un blocco di istruzioni:

var number = 8
when(number) {
in 3..6 -> println("sole e vacanze")
in 7..9 -> println("piove")
10,11 -> println("cadono le foglie")
12,1,2 -> println("fa freddo")
else -> println("mese sbagliato!")
}

Per maggiori informazioni visitate il sito https://kotlinlang.org/docs/control-flow.html .

Potrebbero interessarti anche...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.