Условная Инструкция (Conditional)
Условная Инструкция (Conditional)
Эта инструкция задает различные формы обработки в зависимости от выполнения определенных условий. Основная форма:
if boolean_expression then
instruction; instruction; ...
else
instruction; instruction; ...
end
где каждая ветвь может иметь произвольное число инструкций (а возможно и не иметь их).
Будут выполняться инструкции первой ветви, если boolean_expression верно, а иначе - второй ветви. Можно опустить часть else, если второй список инструкций пуст, что дает:
if boolean_expression then
instruction; instruction; ...
end
Когда есть более двух возможных случаев, можно избежать вложения (nesting) условных команд в частях else, используя одну или более ветвей elseif, как в:
if c1 then
instruction; instruction; ...
elseif c2 then
instruction; instruction; ...
elseif c3 then
instruction; instruction; ...
...
else
instruction; instruction; ...
end
где часть else остается факультативной. Это дает возможность избежать вложения
if c1 then
instruction; instruction; ...
else
if c2 then
instruction; instruction; ...
else
if c3 then
instruction; instruction; ...
...
else
instruction; instruction; ...
end
end
end
Когда необходим множественный разбор случаев, более удобна инструкция множественного выбора inspect, обсуждаемая ниже.
ОО-метод, благодаря полиморфизму и динамическому связыванию, уменьшает необходимость явных условных инструкций и множественного выбора, поддерживая неявную форму выбора. Когда объект применяет некоторый компонент, имеющий несколько вариантов, то во время выполнения нужный вариант выбирается автоматически в соответствии с типом объекта. Этот неявный стиль выбора обычно предпочтительнее, но, конечно, инструкции явного выбора остаются необходимыми.