Menu
Coddy logo textTech

Логические операторы. Часть 1

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

Логические операторы используются для проверки комбинаций сравнений, которые возвращают true или false.

Например, следующее утверждение содержит два сравнения: 

Является ли 5 больше 3 и меньше 6?

ОператорЗначениеПример
&&И — true, если все операнды равны truea && b
||ИЛИ — true, если хотя бы один операнд равен truea || b
!НЕ — true, если операнд равен false!a

 

Давайте рассмотрим несколько примеров,

5 больше 3 и 1 равно 1,

let b1: bool = (5 > 3) && (1 == 1); // содержит true

Объяснение: Все операнды равны true, поэтому b1 будет содержать true (операция and возвращает true, если оба операнда равны true).

 

5 не равно 4 или 5 равно 2,

let b2: bool = !(5 == 4) || (5 == 2); // истинно

Объяснение: Первый операнд (5 != 4) равен true, поэтому b2 также равно true (операция or возвращает true, если хотя бы один из операндов равен true)

 

1 не равно 1 или false,

let b3: bool = !(1 == 1) || false; // содержит false

Объяснение: Все операнды равны false, поэтому b3 будет содержать false (операция or).

 

не (3 больше 4),

let b4: bool = !(3 > 4); // содержит true

Объяснение: Операнд равен false, поэтому b4 будет содержать true (операция not).

 

не (5 больше чем 10 или 5 больше чем 1),

let b5: bool = !(5 > 10 || 5 > 1); // содержит false

Объяснение: 5 > 10 || 5 > 1 — это true (один из операндов равен true), поэтому в итоге b5 равно false (операция not).

challenge icon

Задание

Новичок

Вам предоставлен код. Замените вопросительные знаки в переменных b1 и b2 логическими значениями так, чтобы b3 содержала true.

Существует более одного правильного решения.

Шпаргалка

Логические операторы используются для проверки комбинаций сравнений, которые возвращают true или false.

Оператор Значение Пример
&& И - true, если все операнды равны true a && b
|| Или - true, если хотя бы один операнд равен true a || b
! Не - true, если операнд равен false !a

Примеры:

let b1: bool = (5 > 3) && (1 == 1); // true (оба операнда истинны)
let b2: bool = !(5 == 4) || (5 == 2); // true (первый операнд истинный)
let b3: bool = !(1 == 1) || false; // false (оба операнда ложны)
let b4: bool = !(3 > 4); // true (операнд ложный, поэтому операция "не" возвращает true)
let b5: bool = !(5 > 10 || 5 > 1); // false (выражение внутри истинно, поэтому операция "не" возвращает false)

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

fn main() {
    // Введите ваш код ниже
    let b1: bool = ?;
    let b2: bool = ?;
    let b3: bool = b1 || b2;
    
    // Не изменяйте строку ниже
    println!("b3 = {}", b3);
}
quiz iconПроверьте себя

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

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