Bereiche in Schleifen
Teil des Abschnitts Grundlagen der Swift-Journey von Coddy. Lektion 48 von 86.
Du hast in deinen Schleifen Bereiche wie 1...5 verwendet, aber Swift bietet mehr Flexibilität bei der Definition dieser Bereiche. Sehen wir uns die verschiedenen Bereichstypen und eine nützliche Technik zum Rückwärtszählen an.
Der Operator für geschlossene Bereiche (...) schließt beide Endpunkte ein:
for i in 1...3 {
print(i)
}
// Ausgabe: 1, 2, 3Der Operator für einen halb offenen Bereich (..) schließt die obere Grenze aus, was besonders nützlich ist, wenn du mit nullbasierten Indizes arbeitest:
for i in 0..<3 {
print(i)
}
// Ausgabe: 0, 1, 2Manchmal musst du eine Schleife in umgekehrter Reihenfolge durchlaufen. Mit der Methode reversed() kannst du rückwärts durch einen Bereich iterieren:
for i in (1...3).reversed() {
print(i)
}
// Ausgabe: 3, 2, 1Beachte die Klammern um den Bereich: Sie sind erforderlich, wenn du reversed() für einen Bereich aufrufst. Diese Technik eignet sich perfekt für countdowns oder wenn du Elemente vom letzten bis zum ersten verarbeiten musst.
Aufgabe
EinfachSchreibe eine Funktion countdown, die n entgegennimmt und eine Zeichenkette zurückgibt, die einen Countdown von n bis 1 enthält, gefolgt von „Go!“.
Verwende die Methode reversed() für einen Bereich, um rückwärts zu iterieren und die Countdown-Zeichenkette aufzubauen.
Logik:
- Erstelle einen Bereich von
1bisnund kehre ihn um - Erstelle eine Zeichenkette mit jeder Zahl, getrennt durch einen Zeilenumbruch
- Füge „Go!“ in der letzten Zeile hinzu
Parameter:
n(Int): Die Startzahl für den Countdown (1 oder größer)
Rückgabe: Eine Zeichenkette, in der jede Countdown-Zahl in einer eigenen Zeile steht und die mit „Go!“ endet (String). Format:
3
2
1
Go!Wenn beispielsweise n 3 ist, gibt die Funktion "3\n2\n1\nGo!" zurück.
Probier es selbst
func countdown(n: Int) -> String {
// Schreibe hier den Code
}
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