Вложенные 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 истинны
...
}
}
}Задание
НовичокСоздайте программу, которая проверяет, может ли человек покататься на американских горках. Требования следующие:
- Возраст должен быть не менее 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();
// Напишите свой код ниже
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Fundamentals
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияАрифметические сокращенияОператоры сравненияСравнение строк7Основы ввода-вывода
Вывод в консольЧтение ввода пользователяПовторение — До 120Повторение — True или False5Операторы. Часть 2
Логические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логикаЛогические операторы. Часть 38Приложение-калькулятор
Приветственное сообщениеПолучение чисел3Переменные. Часть 2
Объявление типаСоглашения об именованииВывод типовПовторение: инициализация переменныхПриведение типов9Циклы
Цикл For по последовательностиЦикл WhileОператор BreakОператор ContinueВложенные циклыМетки цикловБесконечный циклПовторение — Динамический ввод