Intervalles dans les boucles
Fait partie de la section Fondamentaux du Journey Swift de Coddy — leçon 48 sur 86.
Vous avez utilisé des intervalles comme 1...5 dans vos boucles, mais Swift offre plus de flexibilité dans la manière de définir ces intervalles. Explorons les différents types d'intervalles et une technique utile pour compter à rebours.
L'opérateur d'intervalle fermé (...) inclut les deux bornes :
for i in 1...3 {
print(i)
}
// Résultat : 1, 2, 3L'opérateur d'intervalle semi-ouvert (..<) exclut la borne supérieure, ce qui est particulièrement utile lors de l'utilisation d'indices basés sur zéro :
for i in 0..<3 {
print(i)
}
// Résultat : 0, 1, 2Parfois, vous avez besoin de boucler dans l'ordre inverse. La méthode reversed() vous permet d'itérer à l'envers à travers une plage :
for i in (1...3).reversed() {
print(i)
}
// Sortie : 3, 2, 1Remarquez les parenthèses autour de la plage — elles sont obligatoires lors de l'appel de reversed() sur une plage. Cette technique est parfaite pour les comptes à rebours ou lorsque vous devez traiter des éléments du dernier au premier.
Défi
FacileÉcrivez une fonction countdown qui prend n et retourne une chaîne de caractères contenant un compte à rebours de n jusqu'à 1, suivi de "Go!".
Utilisez la méthode reversed() sur une plage (range) pour itérer à l'envers et construire la chaîne du compte à rebours.
Logique :
- Créez une plage de
1ànet inversez-la - Construisez une chaîne avec chaque nombre séparé par un saut de ligne
- Ajoutez "Go!" sur la ligne finale
Paramètres :
n(Int) : Le nombre de départ pour le compte à rebours (1 ou plus)
Retourne : Une chaîne avec chaque nombre du compte à rebours sur sa propre ligne, se terminant par "Go!" (String). Format :
3
2
1
Go!Par exemple, si n est 3, la fonction retourne "3\n2\n1\nGo!".
Aide-mémoire
Swift propose deux opérateurs de plage pour les boucles :
L'opérateur de plage fermée (...) inclut les deux bornes :
for i in 1...3 {
print(i)
}
// Résultat : 1, 2, 3L'opérateur de plage semi-ouverte (..<) exclut la borne supérieure :
for i in 0..<3 {
print(i)
}
// Résultat : 0, 1, 2Pour itérer à l'envers dans une plage, utilisez la méthode reversed() :
for i in (1...3).reversed() {
print(i)
}
// Résultat : 3, 2, 1Remarque : Des parenthèses autour de la plage sont nécessaires lors de l'appel de reversed().
Essayez vous-même
func countdown(n: Int) -> String {
// Écrivez le code ici
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs - Partie 1
Opérateurs arithmétiquesOpérateur ModuloAffectation composéeRécapitulatif - Mathématiques simplesOpérateurs de comparaison7Entrées/Sorties de base
Fonction PrintInterpolation de chaînesSaisie ReadLineConversion de typesRécapitulatif - Jusqu'à 120Récapitulatif - Vrai ou Faux10Fonctions
Déclarer une fonctionParamètres et argumentsValeurs de retourÉtiquettes d'argumentRécapitulatif - Fonction SigmaRécapitulatif - Fonction de validationValeurs par défaut13Itération sur les séquences
Itérer sur les élémentsLa méthode d'énumérationItérer sur les chaînes P1Itérer sur les chaînes P22Variables
Let vs VarAnnotations de typeNombresStringsBooléensConventions de nommageRécapitulatif - Initialiser des variables5Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Récapitulatif - Logique simpleOpérateurs logiques, partie 3Opérateur ternaire8Calculateur de partage de facture
Message de bienvenueSaisie des données11FizzBuzz avec une variante
Présentation du jeuLa fonction FizzBuzz3Les Optionnels
Comprendre les optionnelsDéballage avec If LetL'instruction Guard LetOpérateur de fusion nilRécapitulatif - Déballage sécurisé6Prise de décision
L'instruction IfIf - ElseRécapitulatif - Calculatrice simpleL'instruction SwitchSwitch avec des intervalles9Boucles
Boucle For-InBoucle WhileBoucle Repeat-WhileBreakContinueRécapitulatif - FactorielleIntervalles dans les bouclesBoucles imbriquéesRécapitulatif - Entrée dynamique