Intervalles dans un Switch
Fait partie de la section Logique et Flux du Journey Swift de Coddy — leçon 10 sur 56.
Vous avez utilisé switch avec des plages dans les fondamentaux. La même astuce s'adapte aux problèmes de classification réels où chaque cas couvre une tranche de valeurs.
let temp = 22
switch temp {
case ..<0: print("freezing")
case 0..<10: print("cold")
case 10..<20: print("mild")
case 20..<30: print("warm")
default: print("hot")
}
// warmLe premier case ..<0 utilise la forme d'intervalle à une seule borne : « toute valeur strictement inférieure à 0 ». Vous pouvez également utiliser 0... pour signifier « 0 ou plus ».
Les cas sont vérifiés de haut en bas et la première correspondance l'emporte, ordonnez-les donc du plus bas au plus haut (ou utilisez default pour tout intercepter).
Défi
DébutantLisez un seul entier depuis l'entrée : une température en Celsius. Affichez l'une de ces étiquettes en utilisant un seul switch avec des cas d'intervalle (range cases) :
- En dessous de
0(négatifs) :freezing 0...9:cold10...19:mild20...29:warm30...39:hot40et au-dessus :scorching
Pour l'entrée 22, la sortie est warm.
Aide-mémoire
Utilisez switch avec des intervalles (range cases) pour classifier les valeurs. Les cas sont vérifiés de haut en bas ; la première correspondance l'emporte.
let temp = 22
switch temp {
case ..<0: print("freezing") // unilatéral : tout ce qui est inférieur à 0
case 0..<10: print("cold")
case 10..<20: print("mild")
case 20..<30: print("warm")
default: print("hot") // cas par défaut
}
// warm..<0— intervalle unilatéral : toute valeur strictement inférieure à 040...— intervalle unilatéral : 40 ou plus- Ordonnez les cas du plus bas au plus haut ; utilisez
defaultpour le cas par défaut restant
Essayez vous-même
let temp = Int(readLine()!)!
// TODO: utiliser switch sur temp avec des plages, afficher l'étiquette correspondante
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
1Les chaînes de caractères en profondeur
Comptage et indicesCasse et nettoyageRecherche dans les chaînesDécoupage et jointureRemplacement de sous-chaînesRécapitulatif - Vérification du nom d'utilisateur4Ensembles
Création d'ensemblesUnion et intersectionSoustraction et différence symétriqueSous-ensemble et sur-ensembleRécapitulatif - Filtre de tags7Projet - Suivi d'habitudes
Aperçu du projetMarquer comme terminé10Projet - Moteur de quiz
Présentation du projetPoser des questions2Intervalles et Pas
Fermé vs Semi-ouvertLe PasMéthodes d'intervalleIntervalles dans un SwitchRécapitulatif - Grille de calendrier5Fonctions d'ordre supérieur, Partie 1
MapFilterReduceChaînage de map, filter, reduceRécapitulatif - Statistiques de mots