Kotlin: Abfragen
Willemers Informatik-Ecke
  • Strings
  • Schleifen

  • Abfrage

    Ein Programm besteht nicht nur aus der Folge von Anweisungen, sondern kann auch auf Zustandsänderungen reagieren. Dazu verwendet es Abfragen.

    if (a > 10)
        println("sehr viel")
    else if (a < 1)
        println("wenig")
    else
        println("dazwischen")
    
    Auch wenn nur eine Anweisung unter der Bedingung steht, ist es der Übersicht dienlich, geschweifte Klammern als Blockgrenzen zu verwenden.
    var a = 0
    if (a > 10) { 
        println("sehr viel")
    } else if (a < 1) {
        println("wenig")
    } else {
        println("dazwischen")
    }
    

    Boolesche Ausdrücke

    Bedingungen werden als boolesche Ausdrücke formuliert. Das Ergebnis ist immer wahr oder falsch. Als Literale stehen true und false zur Verfügung. Der Typ für boolesche Ausdrücke heißt Boolean.

    Typischerweise entsteht der boolesche Ausdruck durch den Vergleich zweier Werte. Dazu stehen folgende Vergleichsoperatoren zur Verfügung:

    Operator Bedeutung
    < kleiner
    > größer
    <= kleiner oder gleich
    >= größer oder gleich
    == gleich
    != ungleich

    Hinzu kommen logische Verknüpfungen für boolesche Ausdrücke. Dazu stehen folgende boolesche Operatoren zur Verfügung:

    Operator Bedeutung
    && UND
    || ODER
    ! NICHT (unär)

    Bereichsabfrage

    Für Abfragen, ob ein Wert innerhalb eines Bereichs liegt, kann das Schlüsselwort in verwendet werden. Die folgende Abfrage stellt fest, ob die Zahl einstellig ist.
    if (zahl in 0..9) {
        println("Ziffer ist einstellig")
    }
    
    Es ist möglich, bei Bereichen Schrittweiten anzugeben. Hier wird geprüft, ob die Zahl gerade und einstellig ist.
    if (zahl in 0..8 step(2)) {
        println("Ziffer ist einstellig und gerade")
    }
    

    Fallunterscheidungen

    Wenn man einzelne Fälle von abzählbaren Variablen unterscheiden will, kann man dies mit else-if-Kaskaden erreichen. Etwas eleganter ist allerdings die Fallunterscheidung when.

    when (x) {
        1 -> print("x == 1")
        2 -> print("x == 2")
        3, 4 -> print("x == 3 oder x == 4")
        in 5..7 -> print("x zwischen 5 und 7")
        else -> print("x ist kleiner als 1 oder größer als 7.")
    }
    
    Das Beispiel stammt aus Wikipedia