English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Espressione if in Kotlin

In questo articolo, imparerai a utilizzare l'espressione if in Kotlin con esempi.

L'uso tradizionale di if ... else

La sintassi di if ... else è:

if (testExpression) {
   //Se testExpression è true, esegui il codice
}
else {
  //Se testExpression è false, esegui il codice
}

Se il risultato del calcolo di testExpression è true, esegue la parte di codice specifica dell'if. Può avere una clausola else opzionale. Se testExpression è false, esegue il codice nella clausola else.

Esempio: uso tradizionale di if ... else

fun main(args: Array<String>) {
    val number = -10
    if (number > 0) {
        print("Numero positivo")
    } else {
        print("Numero negativo")
    }
}

Quando si esegue questo programma, l'output è:

Numero negativo

Espressione if Kotlin

Diversamente da Java (e da molti altri linguaggi di programmazione), in Kotlin l'if può essere utilizzato come espressione; restituisce un valore.Raccomandato per la lettura: Espressione in Kotlin

Questo è un esempio:

Esempio: espressione if Kotin

fun main(args: Array<String>) {
    val number = -10
    val result = if (number > 0) {
        "Numero positivo"
    } else {
        "Numero negativo"
    }
    println(result)
}

Quando si esegue questo programma, l'output è:

Numero negativo

Quando si utilizza if come espressione, la branca else è obbligatoria.

Se il corpo della branca if contiene solo una istruzione, i parentesi graffati sono opzionali. Ad esempio:

fun main(args: Array<String>) {
    val number = -10
    val result = if (number > 0) "Numero positivo" else "Numero negativo"
    println(result)
}

È simile aOperatore ternario in JavaQuindi, in Kotlin non esiste l'operatore ternario.

Esempio: blocco if con più di una espressione

Se il blocco della branca if contiene più di una espressione, l'espressione finale viene restituita come valore del blocco.

fun main(args: Array<String>) {
    val a = -9
    val b = -11
    val max = if (a > b) {
        println("$a è maggiore di $b.")
        println("La variabile max conserva il valore di a.")
        a
    } else {
        println("$b è maggiore di $a.")
        println("La variabile max conserva il valore di b.")
        b
    }
    println("max = $max")
}

Quando si esegue questo programma, l'output è:

-9 è maggiore di -11.
La variabile max conserva il valore di a.
max = -9

Scalinata if..else..if Kotlin

Puoi usare la scalinata if..else...if in molti blocchi di Kotlin per restituire un blocco di codice.

Ad esempio: if ... else ... if a scalinata

fun main(args: Array<String>) {
    val number = 0
    val result = if (number > 0)
        "Numero positivo"
    else if (number < 0)
        "Numero negativo"
    altro 
        "Zero"
    
    println("Il numero è \t$result")
}

Il programma verifica se il numero è positivo, negativo o zero.

Espressione if annidata Kotlin

Un'espressione if può essere situata all'interno del blocco di un'altra espressione if, detta espressione if annidata.

Esempio: espressione if annidata

Questo programma calcola il numero più grande tra tre numeri.

fun main(args: Array<String>) {
    val n1 = 3
    val n2 = 5
    val n3 = -2
    val max = if (n1 > n2) {
        if (n1 > n3)
            n1
        altro
            n3
    } else {
        if (n2 > n3)
            n2
        altro
            n3
    }
    println("max = $max")
}

Quando si esegue questo programma, l'output è:

max = 5