If - Else imbriqués
Fait partie de la section Fondamentaux du Journey R de Coddy — leçon 25 sur 78.
Parfois, deux options ne suffisent pas. Et si vous devez vérifier plusieurs conditions et traiter chacune d'elles différemment ? Vous pouvez placer une instruction if-else à l'intérieur d'un autre bloc if ou else pour créer des chemins de décision plus complexes.
score <- 85
if (score >= 90) {
print("Grade: A")
} else {
if (score >= 80) {
print("Grade: B")
} else {
print("Grade: C or below")
}
}R vérifie d'abord si le score est de 90 ou plus. Comme 85 ne remplit pas cette condition, il passe au bloc else.
À l'intérieur, un autre if vérifie si le score est d'au moins 80. Puisque 85 réussit ce test, il affiche "Grade: B".
R propose une façon plus élégante d'écrire ceci en utilisant else if :
score <- 85
if (score >= 90) {
print("Grade: A")
} else if (score >= 80) {
print("Grade: B")
} else {
print("Grade: C or below")
}Les deux approches fonctionnent de la même manière, mais else if rend votre code plus plat et plus facile à lire. Vous pouvez enchaîner autant de blocs else if que nécessaire, et R n'exécutera que le premier bloc dont la condition est vraie.
Défi
FacileCréez un système de tarification des billets en utilisant des instructions if-else ou else if imbriquées pour déterminer le prix du billet en fonction de l'âge.
La variable suivante vous est fournie :
age <- 25Écrivez une série de conditions pour déterminer et afficher le prix du billet selon ces règles :
- Si l'âge est inférieur à 5, affichez
"Free" - Si l'âge est compris entre 5 et 12 (inclus), affichez
"$5" - Si l'âge est compris entre 13 et 17 (inclus), affichez
"$8" - Si l'âge est compris entre 18 et 64 (inclus), affichez
"$12" - Si l'âge est de 65 ans ou plus, affichez
"$7"
Utilisez la fonction print() pour votre sortie.
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) {
print("Grade: A")
} else {
if (score >= 80) {
print("Grade: B")
} else {
print("Grade: C or below")
}
}Une approche plus propre consiste à utiliser else if pour enchaîner plusieurs conditions :
score <- 85
if (score >= 90) {
print("Grade: A")
} else if (score >= 80) {
print("Grade: B")
} else {
print("Grade: C or below")
}R évalue les conditions dans l'ordre et n'exécute que le premier bloc dont la condition est vraie. Vous pouvez enchaîner autant de blocs else if que nécessaire.
Essayez vous-même
# Variable fournie
age <- 25
# À FAIRE : Écrivez votre code ci-dessous
# Utilisez des instructions if-else imbriquées ou else if pour déterminer le prix du billet
# en fonction des règles d'âge fourniesCette 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 (AND, OR)Opérateurs logiques - Partie 2 (NOT)Récapitulatif - Logique simpleLogique vectorisée - Partie 1Logique vectorisée - Partie 27Calculateur de partage d'addition
Message de bienvenueRécupérer la saisie utilisateur10FizzBuzz avec une variante
Présentation du jeuLa fonction FizzBuzz2Variables et types de données
Type de données numériqueType de données entierType de données caractèreType de données logiqueVérification des types de donnéesConventions de nommageValeurs manquantes : NARécapitulatif - Création de variables8Boucles
Boucle ForBoucle WhileBreakSuivant (Continue)Récapitulatif - FactorielleGénération de séquences (seq, :)Boucles imbriquéesRécapitulatif - Saisie dynamique3Opérateurs, partie 1
Opérateurs arithmétiquesDivision entière et moduloOpérateurs d'affectationRécapitulatif - Mathématiques simplesOpérateurs de comparaison6Entrées/Sorties de base
Affichage avec PrintCat pour l'affichageAffichage avec des variablesLire l'entrée avec readline()Bases de la conversion de typesRécapitulatif - Calculateur d'âgeRécapitulatif - Vrai ou Faux9Fonctions
Déclarer une fonctionArguments de fonctionValeurs de retourRécapitulatif - Fonction SigmaRécapitulatif - Fonction de validationValeurs de paramètres par défaut