Menu
Coddy logo textTech

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")
}
// warm

Le 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).

challenge icon

Défi

Débutant

Lisez 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 : cold
  • 10...19 : mild
  • 20...29 : warm
  • 30...39 : hot
  • 40 et 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 à 0
  • 40... — intervalle unilatéral : 40 ou plus
  • Ordonnez les cas du plus bas au plus haut ; utilisez default pour 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
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