Условные операторы

Условные операторы обеспечивают выполнение определённого набора команд при осуществлении одного или нескольких логических условий. Обычно применяются для проверки переменных. Синтаксис следующий:

if <условие> then
  <код>
end

Код выполняется только в том случае, если заданное условие истинно. Писать при этом можно как в одну строку, так и разбивать на несколько строк, это зависит от вашего стиля и удобства восприятия кода.

В условие можно вставлять переменные и следующие операторы сравнения.

== равно
~= не равно
< меньше
<= меньше или равно
> больше
>= больше или равно

Например, если нам надо проверить, что переменная f больше нуля, то используем следующий код.

if f > 0 then
  -- Этот код исполняется, если только f больше нуля
end

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

if (f > 0) then
-- Этот код исполняется, если только f больше нуля
end

Для более сложных случаев применяется оператор else, как показано ниже.

if (f > 0) then
  -- Этот код исполняется, если только f больше нуля
else
  -- Этот код исполняется, если f меньше или равен нулю, 
  -- а также если переменная f не является числом
end

Когда требуется сделать проверку сразу нескольких условий, поможет оператор elseif.

if (operator == "+") then r = a + b;
elseif (operator == "-") then r = a - b;
elseif (operator == "*") then r = a*b;
elseif (operator == "/") then r = a/b;
else
  print("Неверный оператор");
end

В данном примере, если переменная operator равна "+", то складываются переменные a и b, а их сумма присваивается r. Дальнейший код в этом случае игнорируется. Если operator не равен "+", то по очереди проверяется, чему он равен и выполняется соответствующая операция. Если значение operator не определено или мы не указали подходящий вариант, то будет выведен текст "Неверный оператор".

Для более сложных условий применяются логические операторы and (И) и or (ИЛИ). Например, нам надо проверить, что число N лежит в диапазоне от 0 до 10 включительно. Тогда подойдёт следующее условие.

if (N >= 0 and N <= 10) then 
  -- что-то сделать
end

В данном случае мы проверяем, что N больше или равен 0 и одновременно меньше или равен 10.

Логическое ИЛИ используется, когда нам надо выбрать один из вариантов, но никак не оба. Например, надо выполнить некоторый код в случае, если x или y равен 5. Тогда код будет следующий.

if (x== 5 or y == 5) then 
  -- что-то сделать
end

Автор и редакторы

Автор: Влад Мержевич
Последнее изменение: 03.03.2015
Редакторы: Влад Мержевич