Условные выражения и безусловные переходы
Функции-переключатели
Для организации ветвления по многим направлениям в современных языках программирования используются операторы-переключатели. В системе Mathematica множественное ветвление организовано с помощью функций Which и Switch:
- Which [test1, value1, test2, value2,…] – вычисляет в порядке следования каждый из testi, сразу возвращая именно ту величину из valuei, которая относится к первому testi, давшему True;
- Switch [expr, form1, value1, form2, value2,…] – вычисляет селектор expr, затем сравнивает его последовательно с каждой из меток formi, вычисляя и возвращая то valuei, которое соответствует первому совпадению.
Приведем примеры работы функции which:
Whicht1 == 2.1.2 == 2, 2, 3 == 3, 3] 2Which[1 == 2, x, 2 == 2, y, 3 == 3, z] yСледующие примеры иллюстрируют работу функции Switch:
Switch[1, 1, a, 2, b, 3, c] a Switch[2, 1, a, 2, b, 3, c] b Switch[3, 1, a, 2, b, 3, c] c Switch[8, 1, a, 2, b, 3, c] Switch[8, 1, a, 2, b, 3, c]Обратите внимание на последний пример – при неверном задании первого параметра (селектора) просто повторяется запись функции.
Следующий пример показывает возможность выбора с применением вещественных значений селектора и меток:
Switch[8., 1.5, a, 2.5, b, 8., c] c Switch[1.5, 1.5, a, 2.5, b, 8., c] a Switch[8, 1.5, a, 2.5, b, 8., c] Switch[8, 1.5, a, 2.5, b, 8., c]Опять-таки, обратите внимание на последний пример – здесь использован селектор в виде целого числа 8, тогда как метка выбора – вещественное число 8. Выбор при этом не происходит, поскольку целочисленное значение 8 не является тождественным вещественной восьмерке.
