Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsPmCdEI 73 of 373 menu
◀ ▶

Конструкция else if в Rust

Конструкция else if позволяет задавать условия в блоке else. Отдельного одного слова для «иначе если» нет: пишут два слова. Несколько веток проверяют сверху вниз, пока одна не окажется истинной.

Давайте посмотрим на примере:

let num = 1; if num == 1 { println!("variant 1"); // сработает это } else if num == 2 { println!("variant 2"); } else if num == 3 { println!("variant 3"); }

Пусть переменная num принимает значение 1, 2 или 3. Для каждого значения нужна своя строка. Задачу решают тремя отдельными if без else:

let num = 1; if num == 1 { println!("variant 1"); // сработает это } if num == 2 { println!("variant 2"); } if num == 3 { println!("variant 3"); }

Преимущество else if перед несколькими отдельными if - возможность поймать ситуацию, когда значение переменной num не подходит ни под одно из условий:

let num = 1; if num == 1 { println!("variant 1"); // сработает это } else if num == 2 { println!("variant 2"); } else if num == 3 { println!("variant 3"); } else { println!("variant not supported"); }

Как только одна проверка дала «да», остальные ниже не смотрят. Порядок важен: более частый или более строгий случай ставят выше.

Разделим оценку по баллам:

let score = 75; if score >= 90 { println!("A"); } else if score >= 70 { println!("B"); } else { println!("C"); }

При другом числе сработает другая строка цепочки:

let score = 95; if score >= 90 { println!("A"); } else if score >= 70 { println!("B"); } else { println!("C"); }

Дано число:

let n = 0;

При 0 выведите "zero", при 1 выведите "one", иначе "many".

Дано число:

let age = 15;

До 13 выведите "child", до 18 выведите "teen", иначе "adult".

Дана строка:

let plan = "basic";

Для "free" выведите "zero", для "basic" выведите "low", иначе "high".

В переменной day лежит какое-то число из интервала от 1 до 31. Определите, в какую декаду месяца попадает это число: в первую, вторую или третью.

Модифицируйте предыдущую задачу так, чтобы, если в переменной day будет не число от 1 до 31, выдавалось сообщение об ошибке.

Пусть в переменной min_part хранится количество минут от 0 до 59. Давайте определим, в какую четверть часа попадает это количество. Цепочку удобнее записать через else if, чтобы сработала только одна ветка:

let min_part = 10; if min_part >= 0 && min_part <= 14 { println!("1 quarter"); // сработает это } else if min_part >= 15 && min_part <= 29 { println!("2 quarter"); } else if min_part >= 30 && min_part <= 44 { println!("3 quarter"); } else if min_part >= 45 && min_part <= 59 { println!("4 quarter"); }

Решите аналогичную задачу, только определите, в какую треть часа попадает указанное количество минут.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить