If - Else imbriqués
Fait partie de la section Fondamentaux du Journey Ruby de Coddy — leçon 24 sur 88.
Et si vous devez vérifier plus de deux conditions ? Vous pouvez placer une instruction if-else à l'intérieur d'une autre instruction if-else. C'est ce qu'on appelle l'imbrication, et cela vous permet de gérer plusieurs points de décision.
score = 85
if score >= 90
puts "Grade: A"
else
if score >= 80
puts "Grade: B"
else
puts "Grade: C"
end
endRuby vérifie la première condition. Si elle est fausse, il passe au bloc else où un autre if-else attend. Cela crée une chaîne de décisions, chacune restreignant les possibilités.
Ruby offre une manière plus propre d'écrire cela en utilisant elsif, qui combine else et if en un seul mot-clé :
score = 85
if score >= 90
puts "Grade: A"
elsif score >= 80
puts "Grade: B"
else
puts "Grade: C"
endLes deux exemples produisent le même résultat, mais elsif rend votre code plus plat et plus facile à lire. Vous pouvez enchaîner autant de conditions elsif que vous le souhaitez, et le else final capture tout ce qui ne correspond pas aux conditions précédentes.
Défi
FacileLa variable suivante vous est fournie :
temperature = 15Créez un système de conseil météo en utilisant if, elsif et else pour classer la température et afficher le message approprié :
- Si
temperatureest supérieure ou égale à30, affichezHot - Stay hydrated - Si
temperatureest supérieure ou égale à20, affichezWarm - Enjoy the day - Si
temperatureest supérieure ou égale à10, affichezCool - Bring a jacket - Si
temperatureest supérieure ou égale à0, affichezCold - Bundle up - Sinon, affichez
Freezing - Stay indoors
Affichez uniquement le message unique qui correspond à la température.
Aide-mémoire
Vous pouvez imbriquer des instructions if-else les unes dans les autres pour vérifier plusieurs conditions :
score = 85
if score >= 90
puts "Grade: A"
else
if score >= 80
puts "Grade: B"
else
puts "Grade: C"
end
endRuby propose elsif comme un moyen plus propre d'enchaîner plusieurs conditions :
score = 85
if score >= 90
puts "Grade: A"
elsif score >= 80
puts "Grade: B"
else
puts "Grade: C"
endVous pouvez enchaîner autant de conditions elsif que nécessaire. Le else final capture tout ce qui ne correspond pas aux conditions précédentes.
Essayez vous-même
temperature = 15
# TODO : Écrivez votre code ci-dessous pour classer la température
# Utilisez if, elsif et else pour afficher le message d'avis météorologique approprié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 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Récapitulatif - Logique simpleOpérateurs logiques, partie 3Opérateurs logiques, partie 47Calculateur de partage de facture
Message de bienvenueSaisie de l'utilisateur10FizzBuzz avec une variante
Présentation du jeuLa méthode FizzBuzz2Variables et types de données
Nombres et variablesType de données StringType de données BooleanType de données SymbolVérification des types de donnéesConventions de nommageRécapitulatif - Création de variables5Prise de décision
Instruction IfIf - ElseRécapitulatif - Calculatrice simpleIf - Else imbriquésInstruction Unless8Boucles
Boucle For avec des intervallesBoucle WhileBreakNextRécapitulatif - FactorielleBoucle TimesBoucle UntilBoucles imbriquéesRécapitulatif - Entrée dynamique3Les opérateurs, partie 1
Opérateurs arithmétiquesOpérateur moduloRaccourcis arithmétiquesRécapitulatif - Calculs simplesOpérateurs de comparaison6Entrées/Sorties de base
Sortie avec putsSortie avec print et pSortie avec des variablesEntrée avec getsLa méthode chompConversion de typesRécapitulatif - Calculateur d'âgeRécapitulatif - Vrai ou Faux9Méthodes
Définir une méthodeParamètres de méthodeValeurs de retourRécapitulatif - Méthode SigmaRécapitulatif - Méthode de validationValeurs de paramètres par défaut12Itérer sur les collections
L'itérateur EachEach avec indexItérer sur les chaînes de caractèresMap et Collect