L'istruzione when su Kotlin
L'istruzione when del linguaggio Kotlin mi permette di realizzare una struttura condizionale con più valori di confronto.
when (variabile) {
val1 -> istruzione 1
val2 -> istruzione 2
val3 -> istruzione 3
...
}
Tra le parentesi tonde è indicata la variabile da confrontare, mentre val1, val2, val3 sono i valori che potrebbe assumere la variabile.
Ogni valore è seguito dal simbolo -> e dall'istruzione da eseguire nel caso in cui il confronto della riga sia soddisfatto.
Nota. Questa struttura condizionale è particolarmente utile se i confronti sono molti, perché l'istruzione when è molto più compatta e leggibile delle else if. Il funzionamento è simile all'istruzione switch case del linguaggio C.
Non c'è limite alla lista dei confronti.
Un esempio pratico
Esempio 1
Questo semplice codice verifica se la variabile x è uguale a uno, due o tre.
- fun main() {
- val x =3
- when(x) {
- 1 -> println("uno")
- 2 -> println("due")
- 3 -> println("tre")
- }
- }
Poiché la variabile x=3, il terzo confronto è soddisfatto.
Il risultato in output è
tre
Esempio 2
Nei confronti posso anche usare delle variabili. Non solo dei valori.
- fun main() {
- val prova =3
- val x =3
- when(x) {
- 1 -> println("uno")
- 2 -> println("due")
- prova -> println("tre")
- }
- }
Il terzo confronto della struttura when è soddisfatto perché prova=x.
Il risultato in output è
tre
E così via.