14. Условные операторы выбора if.
Оператор if предназначен для выполнения тех или иных действий в зависимости от истинности или ложности некоторого условия. Условие задается выражением, имеющим результат булева типа.
Оператор имеет две формы: if и if...else. Форма if имеет вид:
if (условие) оператор;
Скобки, обрамляющие условие, обязательны.
Условием может быть выражение, преобразуемое в булев тип. Если условие истинно (возвращает true — ненулевое значение), то указанный в конструкции if оператор выполняется. В противном случае управление сразу передается следующему за конструкцией if оператору. Например, в результате выполнения операторов
C = A;
if (B > A) C = B;
переменная C станет равна максимальному из чисел A и B, поскольку оператор C = B будет выполнен только при B > A.
Поскольку в C++ арифметическое (целое или действительное) значение может преобразовываться к булеву (любое ненулевое значение воспринимается как true, а нулевое — как false), то условие может иметь целый тип. Например:
Но из-за ошибок округления может условие может неправильно работать.
В условии можно объявлять переменные. Например:
if (int v = func(a)) ... ;
В этом случае область действия и существования объявленной переменной — только данная структура if, включая ее выполняемый оператор. Форма конструкции if...else имеет вид:
if (условие) оператор1; else оператор2;
Если условие возвращает true, то выполняется первый из указанных операторов, в противном случае выполняется второй оператор. Обратите внимание, что в конце первого оператора перед ключевым словом else ставится точка с запятой.
Приведем примеры.
if (J == 0)
ShowMessage("Деление на нуль");else
Result = I/J;
В качестве и первого, и второго оператора могут, конечно, использоваться и составные операторы:
if (J == 0) {
ShowMessage(" Деление на нуль");
Result = 0;
}
else
Result = I/J;
Опять обратите внимание, что после фигурной скобки перед else точка с запятой не ставится.