Bereiche in Schleifen
Teil des Abschnitts Grundlagen der Swift-Journey von Coddy — Lektion 48 von 86.
Du hast Bereiche wie 1...5 in deinen Schleifen verwendet, aber Swift bietet mehr Flexibilität bei der Definition dieser Bereiche. Lass uns die verschiedenen Bereichstypen und eine nützliche Technik zum Rückwärtszählen erkunden.
Der geschlossene Range-Operator (...) schließt beide Endpunkte ein:
for i in 1...3 {
print(i)
}
// Ausgabe: 1, 2, 3Der halboffene Bereichsoperator (..<) schließt die obere Grenze aus, was besonders nützlich ist, wenn man mit nullbasierten Indizes arbeitet:
for i in 0..<3 {
print(i)
}
// Ausgabe: 0, 1, 2Manchmal müssen Sie in umgekehrter Reihenfolge iterieren. Die Methode reversed() ermöglicht es Ihnen, rückwärts durch einen Bereich zu iterieren:
for i in (1...3).reversed() {
print(i)
}
// Ausgabe: 3, 2, 1Beachten Sie die Klammern um den Bereich – sie sind erforderlich, wenn Sie reversed() für einen Bereich aufrufen. Diese Technik ist perfekt für Countdowns oder wenn Sie Elemente vom letzten zum ersten verarbeiten müssen.
Aufgabe
EinfachSchreibe eine Funktion countdown, die n entgegennimmt und einen String zurückgibt, der einen Countdown von n bis 1 enthält, gefolgt von "Go!".
Verwende die Methode reversed() auf einem Bereich, um rückwärts zu iterieren und den Countdown-String zu erstellen.
Logik:
- Erstelle einen Bereich von
1bisnund kehre ihn um - Erstelle einen String, in dem jede Zahl durch einen Zeilenumbruch getrennt ist
- Füge "Go!" in der letzten Zeile hinzu
Parameter:
n(Int): Die Startzahl für den Countdown (1 oder größer)
Rückgabewert: Ein String, bei dem jede Countdown-Zahl in einer eigenen Zeile steht und der mit "Go!" endet (String). Format:
3
2
1
Go!Zum Beispiel, wenn n gleich 3 ist, gibt die Funktion "3\n2\n1\nGo!" zurück.
Spickzettel
Swift bietet zwei Bereichsoperatoren für Schleifen:
Der geschlossene Bereichsoperator (...) schließt beide Endpunkte ein:
for i in 1...3 {
print(i)
}
// Output: 1, 2, 3Der halboffene Bereichsoperator (..<) schließt die obere Grenze aus:
for i in 0..<3 {
print(i)
}
// Output: 0, 1, 2Um rückwärts durch einen Bereich zu iterieren, verwenden Sie die Methode reversed():
for i in (1...3).reversed() {
print(i)
}
// Output: 3, 2, 1Hinweis: Klammern um den Bereich sind erforderlich, wenn reversed() aufgerufen wird.
Probier es selbst
func countdown(n: Int) -> String {
// Code hier schreiben
}
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