fbpx

Розробка додатків для ТехЕдітора: Посібник

Умовний оператор CASE **

Рейтинг користувача: 5 / 5

Активна зіркаАктивна зіркаАктивна зіркаАктивна зіркаАктивна зірка
 

Условный оператор CASE служит для множественного ветвления действий. В некотором смысле, он объединяет несколько операторов IF в единую цепочку.

Основное преимущество оператора CASE в его наглядности. Если тип данных позволяет, то разработчику нет необходимости создавать многократно вложенные операторы if — достаточно перечислить ключевые значения в блоке единственного оператора case.

Общий формат использования оператора CASE

case <Expression> of
Value1: <Action1>;
Value2: <Action2>;
...
ValueN: <ActionN>;
else
<ElseAction>;
end;

Здесь

  • Expression — параметр типа Boolean, Integer, Byte, string, перечисляемого или другого типа
  • Action1 — действие при выполнении условия 1 (Expression=Value1)
  • Action2 — действие при выполнении условия 2 (Expression=Value2)
  • ActionN — действие при выполнении условия N (Expression=ValueN)
  • ElseAction — действие при невыполнении всех предыдущих условий

Оператор CASE и целые числа

В следующем примере функция Rb возвращает расчетное сопротивление бетона (призменную прочность) в зависимости от класса бетона B:

function Rb(B: Integer): Double;
begin
case B of
10: Result := 6.00;
15: Result := 8.50;
20: Result := 11.50;
25: Result := 14.50;
30: Result := 17.0;
else
Result := 0.0;
end;
end;

Блок else нередко используется для сигнализирования об ошибке. В приведенном выше примере мы получим нулевую призменную прочность, если пользователь введет несуществующий (неопределенный) класс бетона.

Оператор CASE и логические выражения

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

procedure Check(Condition: Boolean);
begin
case B of
True: ShowMessage('Condition=True');
False: ShowMessage('Condition=False');
end;
end;

Оператор CASE и перечисления

Оператор CASE может работать с перечисляемым типом данных.

Например, следующая процедура анализирует состояние окна ТехЭдитора (параметр Application.MainForm.WindowState) и выводит соответствующее сообщение с помощью процедуры ShowMessage (окно раскрыто максимально, свернуто на панель задач или имеет ограниченные размеры на экране):

uses
Forms;

procedure WindowStateMessage;
begin
case Application.MainForm.WindowState of
wsMaximized:
ShowMessage('TechEditor is maximized');
wsMinimized:
ShowMessage('TechEditor is minimized');
wsNormal:
ShowMessage('TechEditor is normal');
end;
end;

begin WindowStateMessage; end.

Оператор CASE и строки текста

Данная возможность не поддерживается традиционными средами программирования (например, Delphi) и является уникальной функцией TechEditor:

begin
case Day of
'monday':
ShowMessage('Let's work!');
'friday':
ShowMessage('Happy weekened!');
end;
end;

Применение оператора CASE наиболее оправдано в случаях, когда алгоритм подразумевает ветвление действий на три и более узлов.

Події

На жаль, зараз у нас немає подій.
Переглянути всі події

Простий калькулятор в TechEditor за 10 хвилин!

Ontario Building Code 2012 | Load combination (Free Application & Report Template)

Відеоогляд версії 1.0

Нові статті

Dystlab™ — Project for Engineers

Dystlab™ — торговельна марка, зареєстрована в Державному реєстрі свідоцтв України на знаки для товарів і послуг 26.02.2018, свідоцтво № 238304. Власник: фізична особа-підприємець Артьомов В. Є., ЄДРПОУ/ІНН: 3003314690.

E-mail:
technot needed texteditoranother not needed text@dystlabdummy text.store

Telegram:
https://t.me/techeditor

 

Все найцікавіше про TechEditor — в Твіттері. Приєднуйся!

TechEditor Twitter