Иллюстрированный самоучитель по Mathematica 3/4

Условные выражения и безусловные переходы

Функции-переключатели

Для организации ветвления по многим направлениям в современных языках программирования используются операторы-переключатели. В системе 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]
2
Which[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 не является тождественным вещественной восьмерке.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.