Конструкция 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";

}