PascalABC.NET

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

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

case переключатель of
 
список выбора 1: оператор1;
  ...
 
список выбора N: операторN;
  else
список операторов
end;

Переключатель представляет собой выражение порядкового типа или строкового типа, а списки выбора содержат константы совместимого по присваиванию типа. Как и в операторе if, ветка else может отсутствовать.

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

Список выбора состоит либо из одной константы, либо для перечислимого типа из диапазона значений вида a..b (константа a должна быть меньше константы b); можно также перечислить несколько констант или диапазонов через запятую. Например:

case Country of
  'Россия': Capital := 'Москва';
  'Франция': Capital := 'Париж';
  'Италия': Capital := 'Рим';
  else Capital := 'Страна отсутствует в базе данных';
end;

case DayOfWeek of
  1..5: writeln('Будний день');
  6,7: writeln('Выходной день');
end;

Списки выбора не должны пересекаться. Например, следующий фрагмент

case i of
  2,5: write(1);
  4..6: write(2);
end;

приведет к ошибке компиляции.