Condition switch

Condition switch

La condition switch en Swift (c’est relou à lire 😅) est une alternative à la traditionnelle structure if-else. Elle te permet de tester une valeur unique contre plusieurs cas possibles, rendant ton code plus clair et plus facile à lire, surtout lorsque tu as plusieurs conditions à gérer.

Syntaxe de base


switch valeur {
case valeur1:
    
case valeur2:

default:
    
}

valeur est la variable ou l’expression que tu veux comparer.

case valeur1, case valeur2, sont les valeurs spécifiques que tu compare à valeur.

default est un bloc qui s’exécute si aucun des cas précédents ne correspond à valeur.

Exemple concret

Imagine un programme qui te recommande quoi emporter en fonction du type de précipitations prévu. Pour çà, on va utiliser l’instruction switch afin de catégoriser le temps de manière claire et organisée.


let weather = "neige"

switch weather {
case "soleil":
    print("Il fera beau aujourd'hui, n'oubliez pas vos lunettes de soleil !")
case "pluie":
    print("N'oubliez pas votre parapluie, il va pleuvoir.")
case "neige":
    print("Il va neiger, mettez des bottes et prenez un bonnet.")
case "brouillard":
    print("Attention, le brouillard réduit la visibilité. Soyez prudent si vous conduisez.")
default:
    print("La météo du jour est incertaine, préparez-vous à toute éventualité.")
}

// Lecture dans la console -> Il va neiger, mettez des bottes et prenez un bonnet.
Dans cet exemple, weather contient une chaîne de caractères qui décrit la météo prévue pour la journée. L’instruction switch compare cette chaîne à plusieurs cas possibles ("soleil", "pluie", "neige", et "brouillard") et exécute le bloc de code correspondant à la valeur de weather.

Cette approche permet d’afficher un message personnalisé en fonction des prévisions météorologiques. Si la météo ne correspond à aucun des cas définis, le cas default s’exécute. Ce dernier agit comme un else, si aucun cas n’est vrai, le code dans default est exécuté pour gérer les situations imprévues

Gérer des familles de cas

Tu as la possibilité de gérer plusieurs données sur un même cas en séparant tes valeurs par une virgule ,.


let food = "carotte"

switch food {
case "pomme", "banane", "cerise", "mangue":
    print("C'est un fruit.")
case "carotte", "brocoli", "chou", "poivron":
    print("C'est un légume.")
default:
    print("Cet aliment n'est ni un fruit, ni un légume connu.")
}

// Lecture dans la console  -> C'est un légume.

Utilisation des intervalles (range)

Un des avantages de switch est sa capacité à gérer des intervalles de valeurs, ce qui est particulièrement utile pour des cas comme la classification de températures, par exemple.

Imaginons un programme qui donne des recommandations vestimentaires basées sur la température extérieure. Voici comment on pourrait l’utiliser avec switch et des range.


let temperature = 18

switch temperature {
case -10..<0:
    print("Il gèle dehors, n'oubliez pas votre manteau le plus chaud !")
case 0..<10:
    print("Il fait froid, mettez un bonnet et des gants.")
case 10..<20:
    print("Il fait frais, une veste devrait suffire.")
case 20..<30:
    print("Temps agréable, une tenue légère est de mise.")
case 30...:
    print("Il fait chaud, n'oubliez pas votre chapeau et de l'eau !")
default:
    print("La température est hors d'une plage habituelle.")
}

// Lecture dans la console -> Il fait frais, une veste devrait suffire.
Dans cet exemple, chaque case vérifie si la temperature se trouve dans un intervalle spécifique. Cela permet de donner des conseils adaptés à différentes plages de température.

Avantages du switch

→ Lisibilité Les instructions switch sont souvent plus claires que de multiples ifelse.

→ Exhaustivité Swift exige que tous les cas possibles soient pris en compte, ce qui réduit les erreurs.

→ Flexibilité Supporte les valeurs individuelles et les intervalles.

Exercices Pratiques

Note

Retrouve des exercices pratiques sur cette notion à la fin du cours sur la
condition ternaire.

Exercices Pratiques

Note

Retrouve des exercices pratiques sur cette notion à la fin du cours sur la
condition ternaire.