Typkonvertierung
Teil des Abschnitts Grundlagen der Swift-Journey von Coddy. Lektion 34 von 86.
Da readLine() einen String? zurückgibt, musst du diesen String häufig in eine Zahl umwandeln, um Berechnungen durchzuführen. Swift erfordert eine explizite Typkonvertierung. Es wandelt einen String nicht automatisch in eine Ganzzahl oder eine Gleitkommazahl um.
Um einen String in eine Ganzzahl umzuwandeln, verwende den Initialisierer Int(). Da die Konvertierung fehlschlagen könnte (der String könnte anstelle von Ziffern Buchstaben enthalten), gibt er einen optionalen Wert zurück:
let input = "42"
if let number = Int(input) {
print(number + 10) // Ausgabe: 52
}Für Dezimalzahlen verwende Double():
let priceString = "19.99"
if let price = Double(priceString) {
print(price * 2) // Ausgabe: 39.98
}Dies ist besonders nützlich, wenn du readLine() mit numerischen Operationen kombinierst. Du kannst das Auspacken 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 vorhanden sein und in eine Ganzzahl konvertierbar sein.
Aufgabe
EinfachLies zwei Eingaben ein: eine Dezimalzahl als Zeichenfolge und eine ganze Zahl als Zeichenfolge. Wandle sie in ihre entsprechenden numerischen Typen um und berechne ihr Produkt.
Du erhältst die folgenden Eingaben:
- Erste Zeile: Eine Dezimalzahl (z. B.
"3.5") - Zweite Zeile: Eine ganze Zahl (z. B.
"4")
Verwende readLine(), um beide Eingaben zu lesen. Wandle die erste Eingabe in ein Double und die zweite in ein Int um. Multipliziere sie dann miteinander und gib das Ergebnis aus.
Verwende if let mit verketteter optionaler Bindung, um sowohl die Eingabe als auch den konvertierten Wert sicher auszupacken.
Gib aus: Das Produkt der beiden Zahlen als Double
Probier es selbst
// Lies die Dezimalzahl als String
if let decimalString = readLine() {
// Lies die Ganzzahl als String
if let intString = readLine() {
// TODO: Schreibe deinen Code darunter
// Konvertiere decimalString zu Double und intString zu Int mit if let
// Berechne dann ihr Produkt und gib es 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 ZuweisungRückblick – Einfache MathematikVergleichsoperatoren7Grundlagen der Ein- und Ausgabe
Print-FunktionString-InterpolationReadLine-EingabeTypkonvertierungWiederholung – Bis 120Wiederholung – Wahr oder falsch10Funktionen
Eine Funktion deklarierenParameter und ArgumenteRückgabewerteArgumentbezeichnungenWiederholung – Sigma-FunktionWiederholung – ValidierungsfunktionStandardwerte13Über Sequenzen iterieren
Über Elemente iterierenDie Enumerate-MethodeÜber Strings iterieren Teil 1Über Strings iterieren Teil 22Variablen
let vs. varTypannotationenZahlenStringBooleanNamenskonventionenRückblick – Variablen initialisieren5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Zusammenfassung – Einfache LogikLogische Operatoren Teil 3Ternärer Operator8Rechner zum Teilen der Rechnung
WillkommensnachrichtEingaben erfassen11FizzBuzz mit einer Wendung
SpielübersichtDie FizzBuzz-Funktion14Arrays – Fortgeschritten
Array-Slicing Teil 1Array-Slicing Teil 2SequenzoperatorenDie Contains-Methode3Optionals
Was sind Optionals?Entpacken mit If LetGuard LetNil-Coalescing-OperatorZusammenfassung – Sicheres Entpacken6Entscheidungen treffen
If-AnweisungIf - ElseRückblick – Einfacher TaschenrechnerSwitch-AnweisungSwitch mit Bereichen9Schleifen
For-In-SchleifeWhile-SchleifeRepeat-While-SchleifeBreakContinueZusammenfassung – FakultätBereiche in SchleifenVerschachtelte SchleifeZusammenfassung – Dynamische EingabeÜbe selbstständig: Swift-Playground