|
<< Click to Display Table of Contents >> Navigation: Программирование в MasterSCADA 4D > Редактор ST > Синтаксис Master ST > Операторы Master ST > Оператор CASE |
Оператор CASE обеспечивает выбор действий в зависимости от значения выражения. Служит альтернативой множественным IF-ELSIF для целочисленных условий.
case {выражение} of {список значений}: {последовательность предложений} ... {список значений}: {последовательность предложений} else {последовательность предложений} end_case |
В {выражении} могут использоваться целые числа и целочисленные переменные.
{Список значений} представляет собой один или несколько параметров, разделенных запятой. В данном контексте параметр – это целое число или диапазон. Диапазон задается в следующем виде:
{нижняя граница} .. {верхняя граница}
Алгоритм: Выполняется первая по порядку {последовательность предложений}, для которой результат вычисления {выражения} принадлежит множеству, заданному соответствующим {списком значений}. Если результат вычисления {выражения} не принадлежит ни одному из заданных множеств, выполняется {последовательность предложений}, следующая за ключевым словом ELSE (если блок "ELSE {последовательность предложений}" отсутствует, никаких действий не производится).
Рассмотрим пример, демонстрирующий, как с помощью оператора CASE можно определить агрегатное состояние воды (лёд, вода или кипение) в зависимости от введённой температуры. Программа анализирует целочисленное значение температуры и присваивает переменной state соответствующее текстовое значение:
1.Если температура 0 градусов, вода находится в твёрдом состоянии - "Лёд";
2.При температуре от 1 до 99 градусов вода жидкая - "Вода";
3.При точно 100 градусах - "Кипение" (критическая точка перехода);
4.Все температуры выше вне диапазона от 0 до 100 определяются как некорректные значения.
CASE temperature OF 0 : // Лёд state := "Лёд"; 1..99 : // Жидкая вода state := "Вода"; 100 : // Точка кипения state := "Кипение"; ELSE // Все значения вне диапазона 0..100 - некорректное значение state := "Ошибка: некорректная температура"; END_CASE; |
Результат работы:
•Температура 0 градусов:

•Температура от 1 до 99 градусов:

•Температура 100 градусов:

•Температура вне диапазона:
