Условные выражения и безусловные переходы
Для подготовки полноценных программ помимо средств организации циклов необходимы и средства для создания разветвляющихся программ произвольной структуры. Обычно они реализуются с помощью условных выражений, позволяющих в зависимости от выполнения или невыполнения некоторого условия (condition) выполнять те или иные фрагменты программ.

Рис. 10.5. Продолжение вычислений после команды Interrupt[ ]
Функция IF
Как у большинства языков программирования, условные выражения задаются с помощью оператора или функции IF. Система Mathematica имеет функцию If, формы которой представлены ниже:
- If [condition, t, f] – возвращает t, если результатом вычисления condition является True, и f, если результат равен False;
- If [condition, t, f, u ] – то же, но дает и, если в результате вычисления condition не было получено ни True, ни False.
Следующий пример показывает создание программной процедуры с циклом Do, выход из которой реализуется с помощью функции If и директивы прерывания Aborted[ ]:
x := 1; Print["i x"]; Do[{If [i == 5, Abort[], None], i += 1; x += 2*i; Print[i, " ", N[x]]}, {i, 1, 100}] i x 2 53 11. 4 19. 5 29. $Aborted Return[x] Return[1]Тот же пример, но с применением директивы выхода из цикла Break [ ] в функции If показан ниже:
x := 1; Print["i x"]; Do[{If [i == 5, Break[ ], None], i += 1; x += 2*i; Print[i, " ", N[x]]}, {i, 1, 100}] i x 2 5. 3 11. 4 19. 5 29. Return[x] Return[29]В данном случае никаких специальных сообщений о выходе из цикла не выдается. Функция If обеспечивает ветвление максимум по двум ветвям программы. Для ветвления по многим направлениям можно использовать древовидные структуры программ с множеством функций If. Однако это усложняет исходный текст программы.
