<< Click to Display Table of Contents >> Navigation: Проект > Элементы дерева объектов > Палитра ФБ > Служебные > Программа ST > Основные конструкции языка |
IF… THEN…ELSE
Используя инструкцию IF, можно проверить условие, и в зависимости от истинности этого условия выполнить какие-либо действия.
Синтаксис:
IF <логическое_выражение> THEN
<Список_инструкций1>;
ELSE
<Список_инструкций2>;
END_IF;
Если логическое выражение истинно, то выполняется Список_инструкций1, в противном случае Список_инструкций2.
Пример:
if (davl>5) then (*Если давление выше 5*)
klap:=false; (*Закрыть клапан*)
else klap:=true; (*Иначе открыть клапан*)
end_if;
CASE
С помощью инструкции CASE можно сопоставить различным значениям переменной различные инструкции.
Синтаксис:
CASE <переменная> OF
<Значение_переменной1>: <Список_инструкций1>;
<Значение_переменной2>: <Список_инструкций2>;
<Значение_переменной3>,< Значение_переменной4>: <Список_инструкций2>;
<Значение_переменной5>..< Значение_переменной10>: <Список_инструкций2>;
……
<Значение_переменной_i>: <Список_инструкций_i>;
ELSE <Список_инструкций_исключения>;
CASE работает следующим образом:
• Если <переменная> принимает значение равное < Значение_переменной_i> то выполняется <Список_инструкций_i>
• Если <переменная> не соответствует ни одному из перечисленных значений, то выполняется <Список_инстукций_исключения>
• Если необходимо чтобы один и тот же список инструкций выполнялся для различных значений переменной, то значения переменной нужно перечислить через запятую.
• Если необходимо чтобы один и тот же список инструкций выполнялся для диапазона переменных, необходимо отметить этот диапазон указав начальное и конечное значение диапазона разделив его двумя точками.
Пример:
case in2 of (*Переменная*)
1: out:=1; (*Инструкции*)
out1:=2;
2: out:=2;
3,4: out:=3;
5..10: out:=4;
else out:=5;
end_case;
Цикл FOR
Цикл FOR можно использовать в том случае, если некоторую последовательность действий (инструкций программы) нужно выполнить определенное количество раз.
Синтаксис:
FOR <счетчик:=нач_знач> TO <конечн_знач> BY <величина шага> DO
< Список_инструкций >;
END_FOR;
FOR работает следующим образом. В начале, переменной <счетчик> присваивается значение равное <нач_знач>, затем выполняются инструкции внутри цикла. После каждого цикла <счетчик> увеличивается на значение равное <величина шага> и сравнивается с <конечн_знач>, если значение счетчика меньше конечного значения – цикл выполняется. Параметр BY <величина шага> - необязательный, в случае его отсутствия <счетчик> увеличивается на единицу.
Пример:
for i:=0 to 10 BY 2 do
out1:=out1+5;
end_for;
Цикл WHILE
Условием выхода из цикла WHILE является логическое выражение. Цикл WHILE используется в том случае, если некоторую последовательность действий (инструкций программы) надо выполнить несколько раз, причем необходимое число повторений во время разработки программы неизвестно, и может быть определено только во время исполнения программы.
Примером использования цикла WHILE является поиск элементов в массиве.
Синтаксис:
WHILE <логическое_выражение> DO
< Список_инструкций >;
END_WHILE;
Инструкции внутри цикла WHILE выполняются до тех пор пока <логическое_выражение> является истинным. Если <логическое_выражение> еще до первого выполнения цикла имеет значение false, то инструкции не выполняются ни разу. Если <логическое_выражение> будет иметь неизменным значение true, то цикл будет выполнятся бесконечно.
Пример:
WHILE out1<10 DO
out1:=out1+1;
end_while;
Цикл REPEAT.
Цикл REPEAT схож с циклом WHILE, с одним лишь отличием – проверка условия выполнения инструкций осуществляется в конце цикла, а не в начале как у цикла WHILE. Таким образом цикл REPEAT выполняется как минимум один раз.
Синтаксис:
REPEAT
< Список_инструкций >;
UNTIL <логическое_выражение>
END_REPEAT;
Инструкции внутри цикла REPEAT выполняются до тех пор пока <логическое_выражение> является ложным. Таким образом <логическое_выражение> - это условие выхода из цикла.
Пример:
REPEAT
out1:=out1+1;
UNTIL out1>10
END_REPEAT;
Инструкция EXIT.
Инструкцию EXIT можно использовать в циклах FOR, WHILE, REPEAT если необходимо прервать выполнения цикла.
Пример:
REPEAT
out1:=out1+1;
if out1=8 then
exit;
end_if;
UNTIL out1<10
END_REPEAT;
Ссылки: