В подобном случае можно использовать специальный оператор выбора, имеющий следующий вид:
Синтаксис
case <переключатель> of
<список_констант_1> : <один_оператор_1>;
[<список_констант_2> : <один_оператор_1>;]
. . .
[<список_констант_n> : <один_оператор_n>;]
[else
<один_оператор_k+1>;]
end;
Алгоритм
Выполнение оператора case происходит следующим образом:
- вычисляется значение переключателя;
- полученный результат проверяется на принадлежность к тому или иному списку констант;
- если такой список найден, то дальнейшие проверки уже не производятся, а выполняется оператор, соответствующий выбранной ветви, после чего управление передается оператору, следующему за ключевым словом end;, которое закрывает всю конструкцию case
- Если подходящего списка констант нет, то выполняется оператор, стоящий за ключевым словом else. Если else-ветви нет, то не выполняется ничего.
Структура оператора case должна соответствовать правилам:
- переключатель должен относиться только к порядковому типу данных (не вещественному!);
- переключатель может быть переменной или выражением;
- список констант может задаваться как явным перечислением, так и интервалом или их объединением;
- повторение констант не допускается;
- тип переключателя и типы всех констант должны быть совместимы;
Пример
Требуется найти остаток от деления значения целого выражения c=k*(a+b) на 4 и выдать сообщение о его величине.
Если остаток равен нулю, то увеличить значение с на единицу, если двум или трем, то увеличить значение c на два.
Программная реализация алгоритма
program modcase;
var
a, b, c, k: integer;
begin
writeln('Введите A, B, K');
read(a, b, k);
writeln('K = ', k ,' A = ', a ,' B = ',b);
c := k * (a + b);
case c mod 4 of
0: begin
c := c + 1;
writeln('C = ', c,' остаток 0')
end;
1: writeln('C = ', c,' остаток 1');
2, 3: begin
c := c + 2;
writeln('C = ', c,' остаток 2 или 3');
end
end
end.
Подведем итог
Я все же рекомендую избегать использование оператора case, если его использование не очевидно.
Чтобы попрактиковаться в применении этого оператора, скачайте методичку с заданиями и пробуйте выполнять оттуда задачи.