Il costrutto when

Il costrutto when, si presenta come alternativa al costrutto if. A differenza di if, non è possibile utilizzarlo in ogni situazione in cui c’è bisogno di scegliere tra l’esecuzione di parti di codice diverse. Di seguito vi presentiamo la sintassi:

when (variabile di test) {

valore1 -> istruzione1

valore2, valore3 -> istruzione2

valore4 -> {

istruzione4a

istruzione4b

}

in valoreInizale .. valoreFinale -> istruzioneRange

else -> istruzioneOpzionale

}

In pratica, a seconda del valore intero che assume la variabile di test, vengono eseguite determinate espressioni. La variabile di test, deve essere di un tipo di dato compatibile con un intero oppure una String, ovvero un Byte, uno Short, un Char, oppure, ovviamente un Int. Inoltre valore1, valore2, ... , valoren devono essere espressioni costanti e diverse tra loro. Di seguito viene presentato un esempio:

val stagione: String

when (mese) {

12, 1, 2 -> stagione = "inverno"

3, 4, 5 -> stagione = "primavera"

6, 7, 8 -> stagione = "estate"

9, 10, 11 -> stagione = "autunno"

else -> stagione = "non identificabile"

}

Però Kotlin permette di semplificare ancora di più in questo caso, guardiamo l'esempio sottostante:

val stagione = when (mese) {

12, 1, 2 -> "inverno"

in 3..5 -> "primavera"

in 6..8 -> "estate"

in 9..11 -> "autunno"

else -> "non identificabile"

}

Come notiamo possiamo evitare di usare l'assegnamento in ogni singola clausola del when e invece usarne una globale. Inoltre possiamo usare l'operatore di range .., ove possibile.

results matching ""

    No results matching ""