Условные выражения представляют собой некоторое условие и возвращают значение типа bool: значение true (если условие истинно), либо значение false (если условие ложно). К условным выражениям относятся операции сравнения и логические операции.
Операции сравнения сравнивают два значения и в зависимости от результата сравнения возвращают true или false. В языке Rust имеются следующие операции сравнения:
==
Операция "равно". Возвращает true, если оба операнда равны, и false, если они не равны:
let x = 5; let y = 7; let result: bool; result = x == y; // result = false - x не равно y
!=
Операция "не равно". Возвращает true, если первый операнд не равен второму, и false, если оба операнда равны:
let x = 5; let y = 7; let result: bool; result = x != y; // result = true
>
Операция "больше чем". Возвращает true, если первый операнд больше второго, и false, если первый операнд меньше второго:
let x = 5; let y = 7; let result: bool = x > y; // result = false
<
Операция "меньше чем". Возвращает true, если первый операнд меньше второго, и false, если первый операнд больше второго:
let x = 5; let y = 7; let result = x < y; // result = true
<=
Операция "меньше или равно". Возвращает true, если первый операнд меньше или равен второму, и false, если первый операнд больше второго:
let x = 5; let y = 7; let result = x <= y; // result = true
>=
Операция "больше или равно". Возвращает true, если первый операнд больше или равен второму, и false, если первый операнд меньше второго:
let x = 5; let y = 7; let result = x >= y; // result = false
Обычно операции отношения применяются в условных конструкциях типа if...else, которые будут рассмотрены далее.
Логические операции обычно объединяют несколько операций сравнения. К логическим операциям относят следующие:
! (операция отрицания)
Унарная операция, которая возвращает true, если операнд равен false. Если операнд равен true, операция возвращает false.
let x = true; let y = false; let mut result = !x; // result = false result = !y; // result = true
&& (конъюнкция, логическое умножение)
Возвращает true, если оба операнда не равны false. Возвращает false, если хотя бы один операнд равен false.
let x = true; let y = false; let mut result = x && y; // result = false println!("result = {}", result); result = 10 > 2 && 4 < 5; // result = true (10> 2 равно true и 4 < 5 равно true) println!("result = {}", result);
|| (дизъюнкция, логическое сложение)
Возвращает true, если хотя бы один операнд равен true. Возвращает false, если оба операнда равны false.
let x = true; let y = false; let mut result = x || y; // result = true println!("result = {}", result); result = 2 > 10 || 5 < 4; // result = false (2 > 10 равно false и 5 < 4 равно false) println!("result = {}", result);