switch

Задание условного многонаправленного перехода.

Синтаксис

switch(<главное выражение>) begin
   <выражение для сравнения 11>, .. , <выражение для сравнения 1N>: <код, выполняемый при равенстве значений одного из выражений 11-1N и главного выражения>;
   .. 
   <выражение для сравнения M1>, .. , <выражение для сравнения MN>: <код, выполняемый при равенстве значений одного из выражений M1-MN и главного выражения>;
{else
<оператор при невыполнении ни одного из условий>;
}
end;

Описание

Управляющий оператор switch обеспечивает многонаправленное ветвление скрипта и позволяет сделать выбор среди нескольких альтернативных вариантов дальнейшего выполнения программы. Несмотря на то, что многонаправленная проверка может быть организована с помощью последовательного ряда вложенных операторов if, во многих случаях более эффективным оказывается применение оператора switch.

Опционально оператор switch может использоваться с применением нескольких выражений для сравнения.

Пример 1 (простое применение оператора switch)

for (X = 1, 8) begin    
  switch(X) begin      
    1: begin           
          SetErrorStr("Понедельник");         
       end;      
    2: begin           
          SetErrorStr("Вторник");         
       end;      
    3: begin           
          SetErrorStr("Среда");         
       end;      
    4: begin           
          SetErrorStr("Четверг");         
       end;      
    5: begin           
          SetErrorStr("Пятница");         
       end;    
    6: begin         
          SetErrorStr("Суббота");       
       end;    
    7: begin         
          SetErrorStr("Воскресенье");       
       end;      
    else      
          SetErrorStr("Ошибка");    
    end;
end;

В результате выполнения примера в окно сообщений будут последовательно выведены сообщения "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", Суббота", "Воскресенье", "Ошибка".

Пример 2 (применение оператора switch с несколькими выражениями для сравнения)

for (X = 1, 5) begin   
  switch(X) begin      
    1, 2: begin           
        SetErrorStr("X изменяется от 1 до 2");         
      end;      
    3, 4: begin           
        SetErrorStr("Х изменяется от 3 до 4");         
      end;           
    else      
        SetErrorStr("Х вне диапазона от 1 до 4");    
  end;
end;
В результате выполнения примера в окно сообщений будут последовательно выведены:
  • сначала два сообщения "X изменяется от 1 до 2"
  • затем два сообщения "X изменяется от 3 до 4"
  • в конце будет выведено одно сообщение "Х вне диапазона от 1 до 4"