Оператор if
Оператор if позволяет выполнить некоторый блок инструкций в случае истинности заданного условия. В качестве условия может выступать переменная логического типа или любое выражение, результатом вычисления которого является логическое значение. Блок выполняемых инструкций завершается ключевым словом end. В следующем примере мы отображаем строку "Hello!", если условие %t выполняется. Выражение "%t", как мы знаем, представляет собой константу, обозначающую “истина”, поэтому данное условие всегда истинно и строка будет отображена в любом случае.
if ( %t ) then
disp("Hello!")
end
В результате выполнения предыдущего скрипта в консоль будет выведено
Hello !
Если условие ложно, выполняется ветвь else, как показано в следующем фрагменте:
if ( %f ) then
disp("Hello!")
else
disp("Goodbye!") end
В данном случае в консоли появится строка
Goodbye!
В качестве условия может использоваться любое выражение, результатом вычисления которого является логическое значение, например, использующее операторы сравнения "==", ">" и т.д. или функции, возвращающие логическое значение. В следующем примере мы используем оператор "==" для проверки условия и выводим сообщение "Hello!", если условие истинно, и "Hello!", если оно ложно:
i = 2
if ( i == 2 ) then
disp("Hello!")
else
disp("Goodbye!") end
Следует подчеркнуть, что для проверки равенства используется оператор "==", а не "=". Использование последнего приводит к предупреждению, как показано в следующем фрагменте:
-->i = 2
i =
2.
-->if ( i = 2 ) then
Warning: obsolete use of '=' instead of j
--> disp("Hello!")
Hello !
--> else
--> disp("Goodbye !" )
--> end
При наличии нескольких условий, которые должны быть проверены последовательно, полезным оказывается конструкция elseif. Следующий фрагмент демонстрирует, каким образом конструкция elseif может использоваться для обработки различных значений переменной i:
i = 2
if ( i == 1 ) then
disp("Hello!")
elseif ( i == 2 ) then
disp("Goodbye!")
elseif ( i == 3 ) then
disp("Tchao!")
else
disp("Аu Revoir!")
end
Количество блоков elseif не ограничено, что позволяет создавать ветвление произвольной сложности. Однако, большое число следующих друг за другом блоков elseif часто говорит о необходимости использования оператора select, речь о котором пойдет в следующем разделе.