Menu
Coddy logo textTech

Le Pas

Fait partie de la section Logique et Flux du Journey Swift de Coddy — leçon 8 sur 56.

Une plage avance d'un pas à la fois. Lorsque vous souhaitez une taille de pas différente, ou pour compter à rebours, utilisez stride.

Deux variantes : stride(from:to:by:) s'arrête avant la deuxième valeur (semi-ouvert), stride(from:through:by:) peut l'inclure (fermé) :

for n in stride(from: 0, to: 10, by: 2) {
    print(n)
}
// 0, 2, 4, 6, 8
for n in stride(from: 10, through: 0, by: -2) {
    print(n)
}
// 10, 8, 6, 4, 2, 0

L'argument by: doit avoir le bon signe : positif pour compter vers le haut, négatif pour compter vers le bas. En cas d'incohérence, la boucle s'exécute zéro fois.

challenge icon

Défi

Facile

Lisez trois entiers (trois lignes) : start, end, step. Le pas (step) peut être positif ou négatif. La plage est inclusive aux deux extrémités (utilisez stride(from:through:by:)).

Affichez :

  1. Les valeurs de la progression, jointes par ,
  2. Le nombre de valeurs produites

Pour l'entrée 0 / 10 / 3, la sortie est :

0,3,6,9
4

Pour l'entrée 10 / 0 / -2, la sortie est :

10,8,6,4,2,0
6

Aide-mémoire

Utilisez stride lorsque vous avez besoin d'un pas personnalisé ou pour décompter.

stride(from:to:by:) — semi-ouvert (exclut la valeur de fin) :

for n in stride(from: 0, to: 10, by: 2) { }
// 0, 2, 4, 6, 8

stride(from:through:by:) — fermé (inclut la valeur de fin) :

for n in stride(from: 10, through: 0, by: -2) { }
// 10, 8, 6, 4, 2, 0

La valeur by: doit correspondre à la direction : positive lors d'un comptage croissant, négative lors d'un décomptage. Une inadéquation produit zéro itération.

Essayez vous-même

let start = Int(readLine()!)!
let end = Int(readLine()!)!
let step = Int(readLine()!)!

// TODO: stride(from:through:by:), joindre avec une virgule, puis afficher le nombre d'éléments
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique et Flux