Menu
Coddy logo textTech

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.

challenge icon

Défi

Facile

Cré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 fournies
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 Fondamentaux