Menu
Coddy logo textTech

Typumwandlung

Teil des Abschnitts Grundlagen der Swift-Journey von Coddy — Lektion 34 von 86.

Da readLine() ein String? zurückgibt, müssen Sie diesen String oft in eine Zahl umwandeln, um Berechnungen durchzuführen. Swift erfordert eine explizite Typumwandlung — es wandelt einen String nicht automatisch in einen Integer oder Double um.

Um einen String in eine Ganzzahl umzuwandeln, verwenden Sie den Int()-Initializer. Da die Umwandlung fehlschlagen könnte (der String könnte Buchstaben anstelle von Ziffern enthalten), gibt sie ein Optional zurück:

let input = "42"
if let number = Int(input) {
    print(number + 10) // Ausgabe: 52
}

Verwenden Sie für Dezimalzahlen Double():

let priceString = "19.99"
if let price = Double(priceString) {
    print(price * 2) // Ausgabe: 39.98
}

Dies ist besonders nützlich, wenn man readLine() mit numerischen Operationen kombiniert. Sie können das Unwrapping miteinander verketten:

if let input = readLine(), let age = Int(input) {
    print("Next year you'll be \(age + 1)")
}

Das Komma in der if let-Anweisung bedeutet, dass beide Bedingungen erfüllt sein müssen — die Eingabe muss existieren und sie muss in einen Integer umwandelbar sein.

challenge icon

Aufgabe

Einfach

Lies zwei Eingaben ein: eine Dezimalzahl als String und eine Ganzzahl als String. Konvertiere sie in ihre entsprechenden numerischen Typen und berechne ihr Produkt.

Du erhältst die folgenden Eingaben:

  • Erste Zeile: Eine Dezimalzahl (z. B. "3.5")
  • Zweite Zeile: Eine Ganzzahl (z. B. "4")

Verwende readLine(), um beide Eingaben zu lesen. Konvertiere die erste Eingabe in ein Double und die zweite in ein Int. Multipliziere sie dann miteinander und gib das Ergebnis aus.

Verwende if let mit verkettetem Optional Binding, um sowohl die Eingabe als auch den konvertierten Wert sicher zu entpacken.

Ausgabe: Das Produkt der beiden Zahlen als Double

Spickzettel

Swift erfordert eine explizite Typumwandlung zwischen Strings und Zahlen.

Um einen String in eine Ganzzahl umzuwandeln, verwenden Sie Int(). Dies gibt ein Optional zurück, da die Umwandlung fehlschlagen könnte:

let input = "42"
if let number = Int(input) {
    print(number + 10) // Ausgabe: 52
}

Um einen String in eine Dezimalzahl umzuwandeln, verwenden Sie Double():

let priceString = "19.99"
if let price = Double(priceString) {
    print(price * 2) // Ausgabe: 39.98
}

Sie können das Entpacken von Optionals mit readLine() mithilfe eines Kommas in if let verketten. Beide Bedingungen müssen erfüllt sein:

if let input = readLine(), let age = Int(input) {
    print("Next year you'll be \(age + 1)")
}

Probier es selbst

// Lies die Dezimalzahl als String ein
if let decimalString = readLine() {
    // Lies die Ganzzahl als String ein
    if let intString = readLine() {
        // TODO: Schreibe deinen Code unten
        // Konvertiere decimalString in Double und intString in Int mit if let
        // Berechne und gib dann ihr Produkt aus
        
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen