Вложенные конструкции if-else в Rust
Конструкции if else можно вкладывать
друг в друга произвольным образом. Сначала
отбирают числа внешним условием, затем уточняют
выбор внутренним. Каждый уровень несет свои
фигурные скобки.
Смотрите пример:
let num = 3;
if num >= 0 {
if num <= 5 {
println!("less than or equal to 5"); // сработает это
} else {
println!("more than 5");
}
} else {
println!("less than zero");
}
Каждый уровень несет свои фигурные скобки. Внутренняя проверка выполняется только если внешняя ветка уже выбрана и ее команды дошли до этого места.
Сначала проверим знак, затем величину:
let n = 8;
if n > 0 {
if n < 10 {
println!("small pos");
} else {
println!("big pos");
}
} else {
println!("non pos");
}
При отрицательном числе внутренняя проверка не запускается:
let n = -3;
if n > 0 {
if n < 10 {
println!("small pos");
} else {
println!("big pos");
}
} else {
println!("non pos");
}
Дано число:
let x = 15;
Сначала отберите положительные. Внутри выведите
"mid", если x меньше 20, иначе
"high". Для остальных выведите "low".
Даны переменные:
let ok = true;
let level = 2;
При истинном ok внутри проверьте, равен
ли level 1, и выведите "easy"
или "hard". Иначе выведите "off".
Скажите, выполнится ли внутренняя проверка, если внешняя дала ложный ответ.
Пусть в переменной age хранится число.
Если это число меньше 10 или больше
99, то выведите сообщение об этом.
Если же число попадает в указанный диапазон,
то найдите сумму цифр этого числа. Если
полученная сумма меньше или равна 9,
то выведите сообщение о том, что сумма цифр
однозначна, в противном случае выведите
сообщение о том, что сумма цифр двузначна.