s n h m r u

Minimallogo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

s n h m r u
i

Grundlagen

1. Programmaufbau

// Einzeiliger Kommentar
/* Kommentar über
   mehrere Zeilen */

fun main() {                      // Hauptprogramm: Hier startet das Programm
    println("Hallo Welt!")
}

2. Variablen und Datentypen

val name = "Ada"                  // unveränderliche Variable (value)
var alter = 17                    // veränderliche Variable (variable)
alter = 18                        // neuer Wert: nur bei var möglich
var punkte: Int = 0               // Datentyp ausdrücklich angeben

val anzahl: Int = 42              // ganze Zahl
val preis: Double = 2.99          // Kommazahl (mit Punkt!)
val fertig: Boolean = true        // Wahrheitswert: true oder false
val zeichen: Char = 'A'           // einzelnes Zeichen in ' '
val text: String = "Hallo"        // Zeichenkette in " "

"42".toInt()                      // → 42
"2.5".toDouble()                  // → 2.5
"abc".toIntOrNull()               // → null (keine gültige Zahl)
3.7.toInt()                       // → 3 (Nachkommastellen fallen weg)
5.toDouble()                      // → 5.0
42.toString()                     // → "42"

3. Operatoren

7 / 2                             // → 3 (Int / Int ergibt Int!)
7.0 / 2                           // → 3.5
7 % 2                             // → 1 (Rest der Division)
x += 2                            // x = x + 2 (ebenso -=, *=, /=, %=)
x++                               // x = x + 1 (x-- entsprechend)

3 == 3                            // → true (gleich)
3 != 4                            // → true (ungleich)
4 > 3                             // → true (ebenso <, >=, <=)
!true                             // → false (nicht)
true && false                     // → false (und)
true || false                     // → true (oder)
x in 1..10                        // → true, wenn 1 <= x <= 10

"Info" + "rmatik"                 // → "Informatik"
"Summe: ${x + 1}"                 // String-Template: Ausdruck einsetzen
"Alter: $alter"                   // bei einfachen Variablen ohne { }

4. Verzweigungen

if (x > 5) {
    println("groß")
} else if (x == 5) {              // beliebig viele else if (optional)
    println("fünf")
} else {                          // optional
    println("klein")
}

val maximum = if (a > b) a else b // if als Ausdruck

when (tag) {
    1 -> println("Montag")
    2, 3 -> println("Dienstag oder Mittwoch")
    in 4..5 -> println("Donnerstag oder Freitag")
    else -> println("Wochenende")
}

val note = when {                 // when ohne Argument: Bedingungen prüfen
    punkte >= 13 -> "sehr gut"
    punkte >= 10 -> "gut"
    else -> "nicht so gut"
}

5. Schleifen

while (i < 3) {                   // Bedingung vor jedem Durchlauf prüfen
    i++
}
do {                              // mindestens ein Durchlauf
    i--
} while (i > 0)

for (i in 1..3) { print(i) }      // → 123
for (i in 0 until 3) { print(i) } // → 012 (ohne Endwert)
for (i in 3 downTo 1) { print(i) }   // → 321
for (i in 0..10 step 5) { print(i) } // → 0510 (Schrittweite 5)
for (z in "Hallo") { print(z) }   // → Hallo (jedes Zeichen)
for (element in liste) { }        // jedes Element einer Liste

repeat(3) {                       // Block 3-mal ausführen
    println("Hallo")
}

for (i in 1..10) {
    if (i == 2) continue          // Rest dieses Durchlaufs überspringen
    if (i == 4) break             // Schleife sofort beenden
    println(i)                    // → 1, 3
}

6. Funktionen

fun quadrat(x: Int): Int {        // Parameter und Rückgabetyp
    return x * x
}

fun doppelt(x: Int) = 2 * x       // Kurzform für einen einzigen Ausdruck

fun gruessen(name: String, gruss: String = "Hallo") { // Standardwert
    println("$gruss, $name!")     // ohne Rückgabetyp: keine Rückgabe
}

quadrat(4)                        // → 16
gruessen("Ada")                   // gibt "Hallo, Ada!" aus
gruessen("Ada", "Moin")           // gibt "Moin, Ada!" aus

7. null-Sicherheit

var eingabe: String? = null       // String? : Wert darf auch null sein
eingabe?.length                   // sicherer Aufruf: → null, falls eingabe null ist
eingabe?.length ?: 0              // Elvis-Operator: Ersatzwert, falls null
if (eingabe != null) {
    println(eingabe.length)       // hier ist eingabe sicher nicht null
}
eingabe!!.length                  // Absturz, falls eingabe null ist (vermeiden!)

Suche

v
100.123.9.1.1 Grundlagen
Kopieren durch Anklicken

Rückmeldung geben