Schrittweite
Teil des Abschnitts Logik & Kontrollfluss der Swift-Journey von Coddy — Lektion 8 von 56.
Ein Range durchläuft jeweils einen Schritt. Wenn Sie eine andere Schrittweite wünschen oder rückwärts zählen möchten, verwenden Sie stride.
Zwei Varianten: stride(from:to:by:) stoppt vor dem zweiten Wert (halboffen), stride(from:through:by:) kann diesen einschließen (geschlossen):
for n in stride(from: 0, to: 10, by: 2) {
print(n)
}
// 0, 2, 4, 6, 8for n in stride(from: 10, through: 0, by: -2) {
print(n)
}
// 10, 8, 6, 4, 2, 0Das by:-Argument muss das richtige Vorzeichen haben: positiv beim Aufwärtszählen, negativ beim Abwärtszählen. Bei einer Nichtübereinstimmung wird die Schleife null Mal ausgeführt.
Aufgabe
EinfachLies drei Ganzzahlen ein (drei Zeilen): start, end, step. Der Schritt kann positiv oder negativ sein. Der Bereich ist an beiden Enden inklusiv (verwende stride(from:through:by:)).
Gib Folgendes aus:
- Die Werte im Stride, verbunden mit
, - Die Anzahl der erzeugten Werte
Für die Eingabe 0 / 10 / 3 ist die Ausgabe:
0,3,6,9
4Für die Eingabe 10 / 0 / -2 ist die Ausgabe:
10,8,6,4,2,0
6Spickzettel
Verwenden Sie stride, wenn Sie eine benutzerdefinierte Schrittweite benötigen oder rückwärts zählen möchten.
stride(from:to:by:) — halboffen (schließt den Endwert aus):
for n in stride(from: 0, to: 10, by: 2) { }
// 0, 2, 4, 6, 8stride(from:through:by:) — geschlossen (schließt den Endwert ein):
for n in stride(from: 10, through: 0, by: -2) { }
// 10, 8, 6, 4, 2, 0Der by:-Wert muss der Richtung entsprechen: positiv beim Aufwärtszählen, negativ beim Rückwärtszählen. Eine Nichtübereinstimmung führt zu null Iterationen.
Probier es selbst
let start = Int(readLine()!)!
let end = Int(readLine()!)!
let step = Int(readLine()!)!
// TODO: stride(from:through:by:), mit Komma verbinden, dann Anzahl ausgeben
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Kontrollfluss
1Strings im Detail
Zählen und IndizesGroß-/Kleinschreibung und TrimmenSuchen in StringsTeilen und ZusammenfügenTeilstrings ersetzenWiederholung – Benutzernamen-Check4Mengen
Mengen erstellenVereinigung und SchnittmengeDifferenz und symmetrische DifferenzTeilmenge und ObermengeRückblick – Tag-Filter7Projekt - Habit Tracker
ProjektübersichtAls erledigt markieren2Bereiche & Schrittweiten
Geschlossen vs. halboffenSchrittweiteRange-MethodenRanges in SwitchRückblick – Kalender-Grid5Funktionen höherer Ordnung Teil 1
MapFilterReduceVerkettung von map, filter, reduceRückblick – Wortstatistiken