4 Grundlegende Syntax und Struktur von Kotlin-Programmen

Kotlin zeichnet sich durch eine klare und prägnante Syntax aus, die das Schreiben von robustem und wartbarem Code erleichtert. Dieser Artikel bietet einen Überblick über die grundlegende Syntax und Struktur von Kotlin-Programmen, einschließlich der Deklaration von Variablen, Kontrollstrukturen, Funktionen und Klassen.

Diese nachfolgende Übersicht vermittelt in einem kurzen Roundtrip die grundlegenden Elemente der Kotlin-Syntax und -Struktur.

4.1 Variablendeklaration

4.2 Grundlegende Datentypen

4.3 Kontrollstrukturen

4.4 Funktionen

4.5 Klassen und Objekte

4.6 Ausnahmebehandlung

4.7 Null-Sicherheit

4.8 Lambda-Ausdrücke und Higher-Order Functions

4.9 Übungsaufgaben

4.9.1 Variablendeklaration

  1. Deklariere eine unveränderliche Variable isCodingFun vom Typ Boolean und weise ihr den Wert true zu.
  2. Deklariere eine veränderliche Variable learningKotlin vom Typ String und initialisiere sie mit dem Wert “Spannend”.

4.9.2 Grundlegende Datentypen

  1. Erstelle ein Array numbers mit den Werten 1, 2, 3, 4 und 5.
  2. Deklariere eine Variable pi vom Typ Double und weise ihr den Wert 3.14159 zu.

4.9.3 Kontrollstrukturen

  1. Verwende eine if-Anweisung, um zu überprüfen, ob eine Zahl x größer als 10 ist. Gib “x ist größer als 10” aus, wenn dies zutrifft.
  2. Nutze eine when-Anweisung mit einer Variable day vom Typ String. Gib für “Montag” die Ausgabe “Start in die Woche” und für “Freitag” “Fast Wochenende” aus. Verwende else für alle anderen Tage mit der Ausgabe “Ein normaler Tag”.

4.9.4 Funktionen

  1. Definiere eine Funktion greet, die einen String-Parameter name akzeptiert und “Hallo, name!” ausgibt.
  2. Schreibe eine Funktion maxOf, die zwei Int-Parameter a und b akzeptiert und den größeren der beiden Werte zurückgibt.

4.9.5 Klassen und Objekte

  1. Definiere eine Datenklasse Book mit den Eigenschaften title (String) und author (String).
  2. Erstelle ein Objekt dieser Klasse und initialisiere es mit einem Buchtitel und dem Namen des Autors.

4.9.6 Ausnahmebehandlung

  1. Schreibe einen try-catch-Block, der eine Division durch Null versucht und eine ArithmeticException abfängt. Gib im catch-Block “Division durch Null ist nicht erlaubt” aus.

4.9.7 Null-Sicherheit

  1. Deklariere eine nullable String-Variable nullableName und verwende den sicheren Aufruf, um ihre Länge zu erhalten. Gib “Länge ist null” aus, wenn sie null ist.
  2. Verwende den Elvis-Operator, um einen Standardwert für eine nullable Variable nullableAge vom Typ Int? zu liefern. Gib diesen Wert aus.

4.9.8 Lambda-Ausdrücke und Higher-Order Functions

  1. Erstelle einen Lambda-Ausdruck square, der einen Int-Wert akzeptiert und sein Quadrat zurückgibt.
  2. Verwende die calculate-Funktion aus dem Artikel, um das Produkt zweier Zahlen mit einem Lambda-Ausdruck zu berechnen.

4.10 Musterlösungen

4.10.1 Variablendeklaration

val isCodingFun: Boolean = true
var learningKotlin: String = "Spannend"

4.10.2 Grundlegende Datentypen

val numbers = arrayOf(1, 2, 3, 4, 5)
val pi: Double = 3.14159

4.10.3 Kontrollstrukturen

val x = 11
if (x > 10) {
    println("x ist größer als 10")
}

val day = "Montag"
when (day) {
    "Montag" -> println("Start in die Woche")
    "Freitag" -> println("Fast Wochenende")
    else -> println("Ein normaler Tag")
}

4.10.4 Funktionen

fun greet(name: String) {
    println("Hallo, $name!")
}

fun maxOf(a: Int, b: Int): Int {
    return if (a > b) a else b
}

4.10.5 Klassen und Objekte

data class Book(val title: String, val author: String)

val myBook = Book("Mein erstes Kotlin-Buch", "Max Mustermann")

4.10.6 Ausnahmebehandlung

try {
    val result = 100 / 0
} catch (e: ArithmeticException) {
    println("Division durch Null ist nicht erlaubt")
}

4.10.7 Null-Sicherheit

4.10.7.1 Sichere Aufrufe

var nullableName: String? = null
val nameLength = nullableName?.length ?: "Länge ist null"
println(nameLength)

4.10.7.2 Elvis-Operator

var nullableAge: Int? = null
val age = nullableAge ?: "Standardalter"
println(age)

4.10.8 Lambda-Ausdrücke und Higher-Order Functions

4.10.8.1 Lambda-Ausdruck square

val square: (Int) -> Int = { number -> number * number }
println(square(4)) // Gibt 16 aus

4.10.8.2 Produkt zweier Zahlen berechnen

fun calculate(a: Int, b: Int, operation: (Int, Int) -> Int): Int = operation(a, b)
val product = calculate(4, 5) { x, y -> x * y }
println(product) // Gibt 20 aus