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

Последнее обновление: 05.04.2021

Условная конструкция if..else направляет ход программы по одному из возможных путей в зависимости от условия.

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

Конструкция if проверяет истинность условия, и если оно истинно, выполняет блок инструкций. Этот оператор имеет следующую сокращенную форму:

if условие
{
	инструкции;
}

В качестве условия используется условное выражение, которое возвращает значение типа bool: true или false. Если условие возвращает true, то выполняются последующие инструкции, которые входят в блок if. Если условие возвращает false, то инструкции из блока if не выполняются. Блок инструкций заключается в фигурные скобки.

Например:

fn main(){
	let number = 5;

    if number == 5 
	{
        println!("Условие истинно: number равно 5");
    }
}

Здесь конструкция if проверяет истинность условия number == 5. Если оно возвращает true, то выполняется инструкция println!("Условие истинно: number равно 5");, которая выполняет вывод строки на консоль. И поскольку в данном случае переменная number действительно равна 5, то будут выполняться инструкции из блока if, и мы увидим на консоли соответствующее сообшение:

Условие истинно: number равно 5

Рассмотрим другой случай:

fn main(){
	let number = 5;

    if number < 3 
	{
        println!("Условие истинно: number меньше 3");
    }
	println!("Конец программы");
}

Здесь конструкция if проверяет истинность условия number < 3 (меньше ли значение переменной number числа 3). Поскольку number равно 5, то это условие ложно и возвращает false, соответственно инструкции из блока if не будут выполняться.

else

Также мы можем использовать полную форму конструкции if, которая включает оператор else:

if условие
{
	инструкции;
}
else
{
	инструкции;
}

После оператора else мы можем определить набор инструкций, которые выполняются, если условие после оператора if возвращает false. То есть если условие истинно, выполняются инструкции блока if, а если это выражение ложно, то выполняются инструкции блока else.

fn main(){
	let number = 5;

    if number > 6 
	{
        println!("Условие истинно: number больше 6");
    }
	else
	{
		println!("Условие ложно: number НЕ больше 6");
	}
}

В данном случае условие number > 6 ложно, то есть возвращает false, поэтому будет выполняться блок else. И в итоге на консоль будет выведена строка

Условие ложно: number НЕ больше 6

else if

Однако нередко надо обработать не два возможных альтернативных варианта, а гораздо больше. Например, в случае выше можно насчитать три условия: переменная number может быть больше 6, меньше 6 и равна 6. Для проверки альтернативных условий мы можем вводить выражение else if, после которого указывается альтернативное условие:

fn main(){
	let number = 5;

    if number > 6 
	{
        println!("number больше 6");
    }
	else if number < 6
	{
		println!("number меньше 6");
	}
	else
	{
		println!("number равна 6");
	}
}

То есть в данном случае мы получаем три ветки развития событий в программе. И поскольку условие в выражении else if number < 6 возвращает true, то будут выполняться инструкции из блока else if:

number меньше 6

При необходимости можно добавлять и большее количество выражений else if для проверки альтернативных условий:

fn main(){
	let number = 5;

    if number == 3 
	{
        println!("number равно 3");
    }
	else if number == 4
	{
		println!("number равно 4");
	}
	else if number == 5
	{
		println!("number равно 5");
	}
	else
	{
		println!("значение number не известно");
	}
}

if let

Конструкция let-if позволяет получить в переменную результат конструкции if..else:

let переменная = if условие
{ 
	значение, если условие истинно
} 
else 
{
	значение, если условие ложно 
};

Например:

fn main(){
	let condition = true;
    let number = if condition { 4 } 
				 else {  5 };
	println!("number = {}", number);	// number = 4
}

Здесь если условие, которое представлено переменной condition равно true, то number равно 4. Если condition равно false, то number будет равно 5. И поскольку здесь condition = true, то number будет равно 4

Чуть более сложный пример:

fn main(){
	let a = 5;
	let b = 2;
	let operation = 2;

    let number = if operation == 1 { a + b } 
				else if operation == 2 { a - b }
				else {  a * b };
	println!("number = {}", number);	// number = 3
}

В данном случае если переменная operation равна 1, то number равно результату операции a + b. Если operation равна 2, то number равно a - b. В остальных случаях number равно a * b.

Поскольку здесь operation = 2, то number = a - b, то есть 5 - 2 = 3.

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850