English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Artikel werden Sie durch verschiedene Beispiele die when-Ausdrucksformel in Kotlin kennenlernen.
Kotlin when-Ausdrücke können als}}Java switch-Anweisungersatz. Es bewertet einen Teilcode aus vielen Alternativen.
fun main(args: Array<String>) { val a = 12 val b = 5 println("Eingabeoperator +, -, * oder /) val operator = readLine() val result = when (operator) { "+" -> a + b "-" -> a - b "*" -> a * b "/" -> a / b else -> "$operator Operator ist ein ungültiger Operator." } println("result = $result") }
Wenn Sie das Programm ausführen, wird der Ausgang wie folgt aussehen:
Eingabeoperator +, -, * oder / * result = 60
Das obige Programm liest den Eingabezeile des Benutzers (empfohlen zu lesen:String-Eingabe vom Benutzer in Kotlin abrufen)。Annehmen wir, dass der Benutzer*。In diesem Fall wird der Ausdruck a * b wird bewertet und der Wert dem Variablen result zugewiesen.
Wenn keine Bedingungsbedingung erfüllt ist (Benutzerinput außer+oder-oder*oder/außer anderen Optionen, wird die else-Klausel bewertet.
In diesem Beispiel verwenden wir when als Ausdruck. Wenn however, when als Ausdruck verwendet wird, ist es nicht obligatorisch. Zum Beispiel,
fun main(args: Array<String>) { val a = 12 val b = 5 println("Eingabeoperator +, -, * oder /) val operator = readLine() when (operator) { "+" -> println("$a + $b = ${a + b}) "-" -> println("$a - $b = ${a - b}) "*" -> println("$a * $b = ${a * b}) "/" -> println("$a / $b = ${a / b}) else -> println("$operator ist invalid") } }
Wenn Sie das Programm ausführen, wird der Ausgang wie folgt aussehen:
Eingabeoperator +, -, * oder / - 12 - 5 = 7
Hier ist when nicht ein Ausdruck (keine Zuweisung des Rückgabewerts von when an ein Objekt). In diesem Fall ist die else-Klausel nicht erforderlich.
1Überprüfen Sie zwei oder mehrere Bedingungsbedingungen durch Komma zu kombinieren.Zum Beispiel,
fun main(args: Array<String>) { val n = -1 when (n) { 1, 2, 3 -> println("n ist eine positive Ganzzahl kleiner als 4. 0 -> println("n ist 0 -1, -2 -> println("n ist eine negative Ganzzahl größer als -3. } }
Wenn Sie dieses Programm ausführen, wird ausgegeben:
n ist eine negative Ganzzahl größer als -3.
2Überprüfen Sie die Werte im Bereich.Zum Beispiel,
fun main(args: Array<String>) { val a = 100 when (a) { in 1..10 -> println("A ist kleiner als11Positive Zahlen.") in 10..100 -> println("Zwischen10und100(inklusive10und10Positive Zahlen") } }
Wenn Sie dieses Programm ausführen, wird ausgegeben:
Zwischen 0) und10und100(inklusive10und10Positive Zahlen zwischen 0) und
3Überprüfen Sie, ob ein Wert ein bestimmter Typ ist.
Um zu überprüfen, ob ein Wert zur Laufzeit eine bestimmte Typ ist, können die Operatoren is und !is verwendet werden. Zum Beispiel,
when (x) { is Int -> print(x + 1) is String -> print(x.length + 1) is IntArray -> print(x.sum()) }
4、Verwenden Sie Ausdrücke als Bedingung für die Zweige.Zum Beispiel,
fun main(args: Array<String>) { val a = 11 val n = "11" when (n) { "cat" -> println("Katze? Wirklich?") 12.toString() -> println("Fast, aber nicht genug.") a.toString() -> println("Bingo! Es ist elf.") } }
Wenn Sie dieses Programm ausführen, wird ausgegeben:
Bingo! Es ist elf.