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.
Aufgabe
EinfachLies 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
}
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorZusammengesetzte ZuweisungWiederholung - Einfache MathematikVergleichsoperatoren7Grundlagen der Ein- und Ausgabe
Print-FunktionString-InterpolationReadLine-EingabeTypumwandlungWiederholung - Bis 120Wiederholung - Wahr oder Falsch10Funktionen
Eine Funktion deklarierenParameter und ArgumenteRückgabewerteArgument-LabelsWiederholung - Sigma-FunktionWiederholung - ValidierungsfunktionStandardwerte13Iterieren über Sequenzen
Iterieren über ElementeDie enumerate-MethodeIterieren über Strings Teil 1Iterieren über Strings Teil 22Variablen
Let vs. VarTyp-AnnotationenZahlenStringsBooleansBenennungskonventionenZusammenfassung – Variablen initialisieren5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Wiederholung – Einfache LogikLogische Operatoren Teil 3Ternärer Operator8Rechnungs-Splitter
WillkommensnachrichtEingabe abfragen14Arrays für Fortgeschrittene
Array Slicing Teil 1Array Slicing Teil 2Sequenz-OperatorenDie Contains-Methode3Optionals
Was sind OptionalsUnwrapping mit If LetGuard LetNil-Coalescing-OperatorZusammenfassung – Sicheres Unwrapping6Entscheidungsfindung
If-AnweisungIf - ElseWiederholung - Einfacher TaschenrechnerSwitch-AnweisungSwitch mit Wertebereichen9Schleifen
For-In-SchleifeWhile-SchleifeRepeat-While-SchleifeBreakContinueWiederholung – FakultätBereiche in SchleifenVerschachtelte SchleifeWiederholung – Dynamische Eingabe