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

Конструкция if-else и значения true/false в Rust

Пусть у нас есть какая-то логическая переменная, которая может принимать значения true или false. Условие не обязано содержать сравнение чисел: туда можно поставить саму переменную. Язык смотрит на это значение и выбирает ветку.

let test = true;

Давайте напишем if, проверяющий нашу переменную на значение true. Знака строгого сравнения по типу в Rust нет: для bool достаточно ==, а еще короче поставить саму переменную в условие.

Так записывают проверки флагов: сначала готовят переменную, потом передают ее в конструкцию ветвления без лишних знаков сравнения.

Используем флаг доступа:

let open = true; if open { println!("enter"); } else { println!("wait"); }

При значении нет ветка меняется:

let open = false; if open { println!("enter"); } else { println!("wait"); }

Проверку на true пишут очень часто. Сравнение с true и сама переменная в условии дают один ответ:

let test = true; if test == true { println!("Y"); // сработает это } else { println!("N"); }

Короче поставить в условие саму переменную:

let test = true; if test { println!("Y"); // сработает это } else { println!("N"); }

В условие ставят только логическое значение. Число или строка на этом месте не собираются.

Знак ! меняет да на нет и нет на да. Так проверяют, что переменная не равна true:

let test = true; if !test { println!("Y"); } else { println!("N"); // сработает это }

Запись test == false дает тот же ответ, что и !test:

let test = true; if test == false { println!("Y"); } else { println!("N"); // сработает это }

Составное условие тоже переворачивают. Пусть проверка выглядит так:

let num = 3; if num > 0 && num < 5 { println!("Y"); // сработает это } else { println!("N"); }

Противоположный ответ получится, если поменять знаки и связку И на Или:

let num = 3; if num <= 0 || num >= 5 { println!("Y"); } else { println!("N"); // сработает это }

Короче поставить ! перед исходной проверкой. Скобки держат части вместе:

let num = 3; if !(num > 0 && num < 5) { println!("Y"); } else { println!("N"); // сработает это }

Дана переменная:

let ready = true;

По значению ready выведите "go" или "stop".

Даны переменные:

let logged = false;

Выведите "in" при да в logged, иначе "out".

Скажите, нужен ли знак равенства, если в условии уже стоит переменная с типом да или нет.

Проверьте то, что переменная test равна true.

Проверьте то, что переменная test равна false.

Перепишите код, поставив в условие саму переменную:

let test = true; if test == true { println!("Y"); } else { println!("N"); }

Перепишите код через знак !:

let test = true; if test == false { println!("Y"); } else { println!("N"); }

Перепишите код через знак !:

let test = true; if test != true { println!("Y"); } else { println!("N"); }

Перепишите код, поставив в условие саму переменную:

let test = true; if test != false { println!("Y"); } else { println!("N"); }

Дан код:

let num1 = 1; let num2 = 5; if num1 >= 0 || num2 <= 10 { println!("Y"); } else { println!("N"); }

Знаком ! инвертируйте условие.

Скажите, соберется ли программа, если в if поставить число 3.

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