Когда программа C++ должна принять решение о том, какое из альтернативных действий следует выполнить, такой выбор обычно реализуется оператором if.
Этот оператор имеет две формы:
· просто if
· if else.
Сначала исследуем простой if. Он создан по образцу обычного английского языка, как в выражении “If you have a Captain Cookie card, you get a free cookie” (игра слов на основе созвучности фамилии Кук и слова “cookie” (печенье) — прим. перев.).
Оператор if разрешает программе выполнять оператор или {блок операторов} при условии истинности проверочного условия, и пропускает этот оператор или блок, если проверочное условие оценивается как ложное. Т.е., оператор if позволяет программе принимать решение относительно того, нужно ли выполнять некоторую часть кода.
Синтаксис оператора if подобен while:
if (проверочное-условие)
оператор;
Истинность выражения проверочное-условие заставляет программу выполнить оператор, который может быть единственным оператором или блоком операторов. Ложность выражения проверочное-условие заставляет программу пропустить оператор (рис).
Как и с проверочными условиями циклов, тип проверочного условия if приводится к bool, поэтому ноль трактуется как false, а все, что отличается от нуля — как true. Вся конструкция if рассматривается как одиночный оператор.
Чаще всего проверочное-условие — выражение сравнения, вроде тех, которые управляют циклами. Например, предположим, что вы хотите запрограммировать подсчет пробелов во входной строке, а также общее количество символов. Для чтения символов можно использовать оператор cin.get (char) внутри цикла while, а затем с помощью оператора if идентифицировать и подсчитывать пробельные символы.
В листинге 6.1 реализован такой алгоритм, при этом точка служит признаком конца входного предложения.