In diesem Artikel erfahren Sie anhand verschiedener Beispiele, wann Sie in Kotlin konstruieren.
Kotlin beim Konstruieren
Das when
Konstrukt in Kotlin kann als Ersatz für die Java-Switch-Anweisung angesehen werden. Es wertet einen Codeabschnitt unter vielen Alternativen aus.
Beispiel: Einfach beim Ausdruck
fun main(args: Array) ( val a = 12 val b = 5 println("Enter operator either +, -, * or /") val operator = readLine() val result = when (operator) ( "+" -> a + b "-" -> a - b "*" -> a * b "/" -> a / b else -> "$operator operator is invalid operator." ) println("result = $result") )
Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:
Geben Sie den Operator entweder +, -, * oder / * ein. Ergebnis = 60
Das obige Programm übernimmt eine Eingabezeichenfolge vom Benutzer (Empfohlene Lektüre: Eingabe der Zeichenfolge vom Benutzer in Kotlin). Angenommen, der Benutzer hat eingegeben *
. In diesem Fall wird der Ausdruck a * b
ausgewertet und der Wert dem variablen Ergebnis zugewiesen.
Falls keine der Verzweigungsbedingungen erfüllt sind (Benutzer eingegeben nichts außer +
, -
, * oder /
), else
Zweig ausgewertet wird.
Im obigen Beispiel haben wir when
als Ausdruck verwendet. Die Verwendung when
als Ausdruck ist jedoch nicht obligatorisch . Beispielsweise,
fun main(args: Array) ( val a = 12 val b = 5 println("Enter operator either +, -, * or /") 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 is invalid") ) )
Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:
Geben Sie den Operator entweder +, -, * oder / - 12 - 5 = 7 ein
Hier when
ist kein Ausdruck (Rückgabewert von when
ist nichts zugeordnet). In diesem Fall ist die else
Verzweigung nicht obligatorisch.
Nur wenige Möglichkeiten
Kombinieren Sie zwei oder mehr Verzweigungsbedingungen mit einem Komma. Beispielsweise,
fun main(args: Array) ( val n = -1 when (n) ( 1, 2, 3 -> println("n is a positive integer less than 4.") 0 -> println("n is zero") -1, -2 -> println("n is a negative integer greater than 3.") ) )
Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:
n ist eine negative ganze Zahl größer als 3.
Überprüfen Sie den Wert im Bereich. Beispielsweise,
fun main(args: Array) ( val a = 100 when (a) ( in 1… 10 -> println("A positive number less than 11.") in 10… 100 -> println("A positive number between 10 and 100 (inclusive)") ) )
Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:
Eine positive Zahl zwischen 10 und 100 (einschließlich)
Überprüfen Sie, ob ein Wert von einem bestimmten Typ ist.
Um zu überprüfen, ob ein Wert zur Laufzeit von einem bestimmten Typ ist, können wir den Operator is und! Is verwenden. Beispielsweise,
wenn (x) (ist Int -> print (x + 1) ist String -> print (x.length + 1) ist IntArray -> print (x.sum ()))
Verwenden Sie Ausdrücke als Verzweigungsbedingung. Beispielsweise,
fun main(args: Array) ( val a = 11 val n = "11" when (n) ( "cat" -> println("Cat? Really?") 12.toString() -> println("Close but not close enough.") a.toString() -> println("Bingo! It's eleven.") ) )
Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:
Bingo! Es ist elf.