Конструкция if-else
Зачем нужны условные операторы?
В повседневной жизни мы часто сталкиваемся с ситуациями, в которых осуществляется какой-либо выбор, другими словами, выполняется одно из возможных действий в зависимости от результата проверки определенного условия. С точки зрения программирования нас, конечно, интересуют ситуации, когда выбор осуществляет компьютер. Рассмотрим несколько примеров.
Пример 1. Человек вводит пин-код в банкомате и, если пин-код верный, то банкомат предлагает продолжить работу, в противном случае на экране появляется сообщение об ошибке.
Пример 2. Студент проходит online-тестирование, и в зависимости от количества правильных ответов компьютер выставляет оценку 2, 3, 4 или 5.
Пример 3. Студент взял книгу в библиотеке сроком на один месяц. Компьютер отслеживает текущую дату и сравнивает её со сроком сдачи книги. Если эти даты оказываются равны, то на e-mail студента автоматически отсылается письмо с уведомлением о необходимости сдать книгу.
Данные примеры описывают разные ситуации, однако с точки зрения программирования они сводятся к сравнению каких-либо значений с последующим вызовом соответствующих функций. Для реализации таких действий существуют специальные конструкции, называемые условными операторами или операторами выбора. В языке Си существуют два условных оператора: конструкция if-else и конструкция switch-case. Имеется также вспомогательный оператор ?:, который представляет собой сокращённую запись для if-else.
Синтаксис оператора if-else напоминает обычный человеческий язык: если то-то, тогда сделай это, а в противном случае сделай другое. В операторе if-else указывается проверяемое выражение, которое может принимать либо значение true, либо false, а также два блока операторов, выполняемых соответственно при равенстве выражения true или false. На языке Си конструкция if-else записывается так:
if (<проверяемое условие>) {
<группа_операторов_1>
}
else {
<группа_операторов_2>
}
Рассмотрим пример использования этой конструкции. Известно, что сумма углов любого треугольника равна 180 градусов. Напишем программу, которая принимает с клавиатуры значения трёх углов и проверяет, может ли треугольник иметь такие углы. Алгоритм решения данной задачи следующий:
- ввести с клавиатуры значения углов;
- вычислить их сумму;
- если сумма равна 180, то вывести «Может»;
- иначе (если сумма не равна 180) вывести «Не может».
//Вводим значения углов
int angle1, angle2, angle3;
cout << "Введите значение угла 1:\n";
cin >> angle1;
cout << "Введите значение угла 2:\n";
cin >> angle2;
cout << "Введите значение угла 3:\n";
cin >> angle3;
//Вычисляем сумму углов
int angles_sum = angle1+angle2+angle3;
//Если сумма равна 180
if (angles_sum==180) {
cout << "Может\n";
//Если сумма не равна 180
} else {
cout << "Не может\n";
}