Menu
Coddy logo textTech

Вложенные If-Else

Часть раздела Fundamentals путешествия по Rust на Coddy — урок 28 из 75.

Мы можем вкладывать инструкции if-elif-else друг в друга. Это позволяет нам создавать иерархические структуры принятия решений.

Например:

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

Вложенность может быть бесконечной:

if condition1 {
	if condition2 {
		if condition3 {
		    // если condition1, condition2 и condition3 истинны
		    ...
		}
	}
}
challenge icon

Задание

Новичок

Создайте программу, которая проверяет, может ли человек покататься на американских горках. Требования следующие:

  • Возраст должен быть не менее 12 лет
  • Рост должен быть выше 150 см
  • Если они соответствуют обоим требованиям, но им меньше 15 лет, им требуется сопровождение взрослых

Выводите в точности эти сообщения для каждого случая:

  • Если слишком молод: Sorry, you're too young
  • Если недостаточно высокий: Sorry, you're not tall enough
  • Если младше 15 лет и без взрослого: Sorry, you need an adult with you
  • Если младше 15 лет со взрослым: You can ride with adult supervision!
  • Если 15 лет или старше и достаточно высокий: You can ride by yourself!

Шпаргалка

Вы можете вкладывать инструкции if-elif-else друг в друга для создания иерархических структур принятия решений:

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

Вложенность может быть бесконечной:

if condition1 {
    if condition2 {
        if condition3 {
            // если condition1, condition2 и condition3 истинны
            ...
        }
    }
}

Попробуйте сами

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();

    // Напишите свой код ниже
    
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Fundamentals