Основы программирования на C++, PASCAL
4.6. Программирование ветвлений
Для программирования ветвящихся алгоритмов в языке Си имеется несколько различных средств. К ним относятся рассмотренная выше операция условия ?:, условный оператор if и оператор выбора switch.
Условный оператор. Формат условного оператора следующий:
if (выражение) оператор!; else оператор2;
Это полная форма оператора, программирующая структуру полного ветвления. Обычно выражение — это некоторое условие, содержащее операции отношения и логические операции. Значение выражения приводится к целому и интерпретируется в соответствии с правилом: равно нулю — ложь, не равно нулю — истина. Если выражение истинно, выполняется оператор1, если ложно — оператор2.
Необходимо обратить внимание на следующие особенности синтаксиса условного оператора:
• выражение записывается в круглых скобках;
• точка с запятой после оператора 1 ставится обязательно. Последнее обозначает, что правило Паскаля — не ставить точку с запятой перед else — здесь не работает.
Возможно использование неполной формы условного оператора
if (выражение) оператор;
Вот пример использования полной формы условного оператора для нахождения большего значения из двух переменных а и b:
if(a>b) max=a; else max=b;
Та же самая задача может быть решена с использованием неполного ветвления следующим образом:
max=a; if(b>a) max=b;
Напомним, что эту же задачу можно решить с помощью операции «условие» (см. разд. 4.4).
Теперь рассмотрим примеры программирования вложенных ветвящихся структур. Требуется вычислить функцию sign(x) — знак х, которая определена следующим образом:

Пример 1. Алгоритм с полными вложенными ветвлениями:

Пример 2. Алгоритм с неполным ветвлением:

Пример 3. Упорядочить по возрастанию значения в двух переменных а, b:

В данном примере использован составной оператор — последовательность операторов, заключенная в фигурные скобки. В Си фигурные скобки выполняют роль операторных скобок по аналогии с Begin, End в Паскале.
Обратите внимание на то, что перед закрывающей фигурной скобкой точку с запятой надо ставить обязательно, а после скобки точка с запятой не ставится.
В следующем примере вернемся к задаче вычисления площади треугольника по длинам трех сторон. Добавим в программу проверку условия правильности исходных данных: a, b, с должны быть положительными,

