Лекция: END_CASE

Если значение выражения совпадает с заданной константой, то выполняется соответствующая группа выражений. Прочие условия не анализируются (<значение 1>: <выражения 1> ;).

Если несколько значений констант должны соответствовать одной группе выражений, их можно перечислить через запятую (<значение 2>, <значение 3>: <выражения 2> ;).

Диапазон значений можно определить через двоеточие <значение 4>..<значение 5>: <выражения 3> ;).

Группа выражений ELSE является необязательной. Она выполняется при несовпадении ни одного из условий (<выражения ELSE> ;).

 

Пример:

CASE byLeft/2 OF

0,127:

bReset := TRUE;

Var1 := 0;

16..24:

Var1 := 1;

ELSE

Varl := 2;

END_CASE

 

Значениями выбора CASE могут быть только целые константы, переменные использовать нельзя. Одинаковые значения в альтернативах выбора задавать нельзя, даже в диапазонах. Так, следующий пример обязан вызвать ошибку при трансляции:

CASE byLeft OF

20: Varl := 0;

16..24: Varl := 1;

END_CASE

Безусловно, оператор CASE «слабее» оператора IF, не имеющего подобных ограничений. Но формат CASE не только выразителен для программиста, но и более эффективен. Использование целочисленных констант позволяет транслятору выполнить оптимизацию кода, часто весьма существенную.

 

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