#9.2 Case в Паскале: Оператор выбора ("варианта", "переключатель")

Case - "оператор" выбора, используется в разных языках программирования, для описания ситуации сравнения какого-то значения с разными вариантами, и каких-то действий, которые надо предпринять, если найдено совпадение.

Расмотрим пример кода с участием условного оператора:

var a: integer;
begin

  a := 5;

  if (a = 3) then // вариант сравнения
    writeln(3)
  else if (a = 4) then // вариант сравнения
    writeln(4)
  else if (a = 6) then // вариант сравнения
    writeln(6)
  else // если ничего предыдущее не выполнилось
    writeln('Что-то еще');

end.

Это пример можно переписать так с использование оператора case:

var a: integer;
begin

  a := 5; // или a:=4, смотря какой вариант нам нужен

  case a of
    3 : writeln(3); // вариант сравнения
    4 : writeln(4); // вариант сравнения
    6 : writeln(6); // вариант сравнения
  else // далее операция по умолчанию: если ничего предыдущее не выполнилось
    writeln('Что-то еще');
  end; // конец блока case

end.

(см. видео-разбор: Работа оператора Case, Общее представление для лучшего понимания)
-- обратите внимание, что у case есть собственный завершающий end.

Если для какого-то из вариантов требуется выполнить более одной операции, то:

var a: integer;
begin

  a := 3;

  case a of
    3 :
    begin
      writeln(3);
      writeln(3);
    end; // вариант сравнения
    4 : writeln(4); // вариант сравнения
    6 : writeln(6); // вариант сравнения
  else // если ничего предыдущее не выполнилось
    writeln('Что-то еще');
  end;  // конец блока case

end.

"Неполная форма": без варианта по умолчанию

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

var a: integer;
begin

  a := 5; // или a:=4, смотря какой вариант нам нужен

  case a of
    3 : writeln(3); // вариант сравнения
    4 : writeln(4); // вариант сравнения
    6 : writeln(6); // вариант сравнения
  end;  // конец блока case
end. 

Видео-разборы

Задачи для самостоятельного решения

  1. Пользователь вводит символ, если он равен 'a', то выведите на экран 1, если 'b', то 2, иначе 3

    --решить с помощью оператора case

  2. Пользователь вводит символ, если он равен 'a', то выведите на экран 1, если 'b', то 2, если же 'c', то 3 (без использования варианта по-умолчанию)

    --решить с помощью оператора case

Документация


Страница посвящается третьему курсу ФКН СПО Воронежского Лестеха, в ходе занятий с которым (в основном группы 202 и 203) она и была добавлена в 2023 году ;)

Key Words for FKN + antitotal forum (CS VSU):