if(выражение) инструкция;
else инструкция;
Здесь под элементом инструкция понимается одна инструкция языка C++. Часть else необязательна. Вместо элемента инструкция может быть использован блок инструкций. В этом случае формат записи if-инструкции принимает такой вид.
if(выражение)
{
последовательность инструкций
}
else
{
последовательность инструкций
}
Если элемент выражение, который представляет собой условное выражение, при вычислении даст значение ИСТИНА, будет выполнена if-инструкция; в противном случае else-инструкция (если таковая существует). Обе инструкции никогда не выполняются. Условное выражение, управляющее выполнением if-инструкции, может иметь любой тип, действительный для С++-выражений, но главное; чтобы результат его вычисления можно было интерпретировать как значение ИСТИНА или ЛОЖЬ.
Использование if-инструкции рассмотрим на примере программы, которая представляет собой версию игры "Угадай магическое число". Программа генерирует случайное число и предлагает вам его угадать. Если вы угадываете число, программа выводит на экран сообщение одобрения ** Правильно **. В этой программе представлена еще одна библиотечная функция rand(), которая возвращает случайным образом выбранное целое число. Для использования этой функции необходимо включить в программу заголовок <cstdlib>.
// Программа "Угадай магическое число".
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int magic; // магическое число
int guess; // вариант пользователя
magic = rand(); // Получаем случайное число.
cout << "Введите свой вариант магического числа: ";
cin >> guess;
if(guess == magic) cout << "** Правильно **";
return 0;
}
В этой программе для проверки того, совпадает ли с "магическим числом" вариант, предложенный пользователем, используется оператор отношения "==". При совпадении чисел на экран выводится сообщение ** Правильно **.
Попробуем усовершенствовать нашу программу и в ее новую версию включим else-ветвь для вывода сообщения о том, что предположение пользователя оказалось неверным.
// Программа "Угадай магическое число":
// 1-е усовершенствование.
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int magic; // магическое число
int guess; // вариант пользователя
magic = rand(); // Получаем случайное число.
cout << "Введите свой вариант магического числа: ";
cin >> guess;
if(guess == magic) cout << "** Правильно **";
else cout << "...Очень жаль, но вы ошиблись.";
return 0;
}
Иногда новичков в C++ сбивает с толку тот факт, что для управления if-инструкцией можно использовать любое действительное С++-выражение. Другими словами, тип выражения необязательно ограничивать операторами отношений и логическими операторами или операндами типа bool. Главное, чтобы результат вычисления условного выражения можно было интерпретировать как значение ИСТИНА или ЛОЖЬ. Как вы помните из предыдущей главы, нуль автоматически преобразуется в false, а все ненулевые значения— в true. Это означает, что любое выражение, которое дает в результате нулевое или ненулевое значение, можно использовать для управления if-инструкцией. Например, следующая программа считывает с клавиатуры два целых числа и отображает частное от деления первого на второе. Чтобы не допустить деления на нуль, в программе используется if-инструкция.
// Деление первого числа на второе.