Лекция: Пустое выражение

Пустое выражение состоит из точки с запятой «;». Для точки с запятой транслятор не генерирует никакого кода. Если случайно поставить лишнюю «;», это не вызовет ошибки. Единственное осмысленное применение пустого выражения — это обеспечение правильности языковых конструкций. Например, может потребоваться оттранслировать проект, содержащий еще не реализованный POU. Для корректной трансляции достаточно написать в теле POU один пустой оператор. Еще один пример, где пустой оператор оказывается весьма кстати, это условие IF, не содержащее раздел THEN:

IF x = Threshold THEN

; (*все хорошо*)

ELSIF x > Threshold THEN

bMarker := bMarker — 1; (*шаг вниз*)

ELSE

bMarker := bMarker + 1; (*шаг вверх*)

END_IF; (*лишняя; *)

 

Оператор выбора IF

Оператор выбора позволяет выполнить различные группы выражений в зависимости от условий, определенных логическими выражениями. Полный синтаксис оператора IF (если) выглядит так:

IF <логическое выражение IF>

THEN <выражения if>

[

ELSIF <логическое выражение ELSEIF 1>

THEN

< выражения ELSEIF 1> ;

ELSIF <логическое выражение ELSEIF n>

THEN

< выражения ELSEIF n> ;

ELSE

< выражения ELSE> ;

]

END_IF

Если <логическое выражение IF> ИСТИНА, то выполняются выражения первой группы — <выражения IF>. Прочие выражения пропускаются, альтернативные условия не проверяются.

Часть конструкции в квадратных скобках является необязательной и может отсутствовать.

Если <логическое выражение IF> ЛОЖЬ, то одно за другим проверяются условия ELSIF. Первое истинное условие приведет к выполнению соответствующей группы выражений. Прочие условия ELSIF анализироваться не будут. Групп ELSIF может быть несколько или не быть совсем.

Если все логические выражения дали ложный результат, то выполняются выражения группы ELSE, если она есть. Если группы ELSE нет, то не выполняется ничего.

В простейшем случае оператор IF содержит только одно условие:

IF bReset THEN

iVar1 := 1; iVar2 := 0;

END_IF

На первый взгляд конструкция IF с несколькими группами выглядит сложной, но на самом деле оказывается доста­точно выразительной:

IF bReset THEN

iVar1 := 1;

ELSIF byLeft < 16 THEN

iVar1 := 2;

ELSIF byLeft < 32 THEN

iVar3 := 3;

ELSIF byLeft < 64 THEN

iVar1 := 4;

ELSE bReset := TRUE;

END IF

еще рефераты
Еще работы по информатике