Menu
Coddy logo textTech

Конструкция If-Else

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

if позволяет нам выполнять определённый код, если условие соблюдено, но что, если мы хотим выполнить что-то другое, если условие не соблюдено?

Для этого у нас есть инструкция else:

let age: i32 = 15;
let status = if age >= 18 {
    "Adult"
} else {
    "Young"
};

В приведенном выше примере age меньше 18, что означает, что выполняется код в блоке else, и status будет содержать "Young".

Мы можем сделать это еще более выразительным, используя оператор else if:

let age: i32 = 68;
let status = if age < 18 {
    "Young"
} else if age >= 18 && age <= 65 {
    "Adult"
} else {
    "Old"
};

Здесь проверяется, меньше ли age, чем 18; если нет, выполнение перейдет к следующему условию и проверит, находится ли age в диапазоне от 18 до 65. Если и это условие не будет выполнено, оно установит status в значение "Old".

Мы можем добавить столько операторов else if, сколько захотим:

if condition1 {
    code;
} else if condition2 {
    code;
} else if condition3 {
    code;
}
...
challenge icon

Задание

Новичок

Вам дан код, который получает на вход число, обозначающее скорость ветра, и сохраняет его в переменной с именем wind.

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

 

Ваша задача — инициализировать переменную status на основе следующих условий:

  • "Calm", если wind меньше 8,
  • "Breeze", если wind находится в диапазоне от 8 до 31 (включая 8 и 31).
  • "Gale", если wind находится в диапазоне от 32 до 63 (включая 32 и 63)
  • "Storm" в противном случае

Проверьте тестовые случаи, чтобы увидеть все входные данные и ожидаемые результаты

Шпаргалка

Используйте else для выполнения кода, когда условие if не выполняется:

let age: i32 = 15;
let status = if age >= 18 {
    "Adult"
} else {
    "Young"
};

Используйте else if для проверки нескольких условий:

let age: i32 = 68;
let status = if age < 18 {
    "Young"
} else if age >= 18 && age <= 65 {
    "Adult"
} else {
    "Old"
};

Вы можете объединять в цепочку несколько инструкций else if:

if condition1 {
    code;
} else if condition2 {
    code;
} else if condition3 {
    code;
}

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

use std::io;

fn main() {
    let mut input = String::new();
    io::stdin().read_line(&mut input).unwrap();
    let wind: i32 = input.trim().parse().unwrap();
    // Замените строку ниже выражением if-else, которое присваивает status в зависимости от wind
    let status = "unset";
    
    // Не изменяйте строку ниже
    println!("status = {}", status);
}
quiz iconПроверьте себя

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

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