Menu
Coddy logo textTech

If-Else imbriqués

Fait partie de la section Fundamentals du Journey Rust de Coddy — leçon 28 sur 75.

Nous pouvons imbriquer des instructions if-elif-else les unes dans les autres. Cela nous permet de créer des structures de prise de décision hiérarchiques.

Par exemple :

if age > 18 {
    if hasLicense {
        println!("You can drive");
    } else {
        println!("Get a license first");
    }
} else {
    println!("Too young to drive");
}

Il peut être imbriqué à l'infini :

if condition1 {
	if condition2 {
		if condition3 {
		    // si condition1, condition2 et condition3 sont vraies
		    ...
		}
	}
}
challenge icon

Défi

Débutant

Créez un programme qui vérifie si quelqu'un peut faire un tour de montagnes russes. Les conditions sont :

  • Doit avoir au moins 12 ans
  • Doit mesurer plus de 150 cm
  • S'ils remplissent les deux conditions mais ont moins de 15 ans, ils ont besoin de la supervision d'un adulte

Affichez exactement ces messages pour chaque cas :

  • Si trop jeune : Sorry, you're too young
  • Si pas assez grand : Sorry, you're not tall enough
  • Si moins de 15 ans et sans adulte : Sorry, you need an adult with you
  • Si moins de 15 ans avec un adulte : You can ride with adult supervision!
  • Si 15 ans ou plus et assez grand : You can ride by yourself!

Aide-mémoire

Vous pouvez imbriquer des instructions if-elif-else les unes dans les autres pour créer des structures de prise de décision hiérarchiques :

if age > 18 {
    if hasLicense {
        println!("You can drive");
    } else {
        println!("Get a license first");
    }
} else {
    println!("Too young to drive");
}

L'imbrication peut être faite à l'infini :

if condition1 {
    if condition2 {
        if condition3 {
            // si condition1, condition2 et condition3 sont vraies
            ...
        }
    }
}

Essayez vous-même

use std::io;

fn main() {
    let mut age_input = String::new();
    let mut height_input = String::new();
    let mut adult_input = String::new();
    
    io::stdin().read_line(&mut age_input).unwrap();
    io::stdin().read_line(&mut height_input).unwrap();
    io::stdin().read_line(&mut adult_input).unwrap();
    
    let age: i32 = age_input.trim().parse().unwrap();
    let height: i32 = height_input.trim().parse().unwrap();
    let has_adult: bool = adult_input.trim().parse().unwrap();

    // Écrivez votre code ci-dessous
    
}
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 Fundamentals