ВУЗ:
Составители:
Рубрика:
39
Оператор варианта
Данный оператор является обобщением условного оператора.
Можно конкретно сопоставить различным значениям некоторого
выражения соответствующие им операторы.
Case
Селектор O
f
А
льтернатива
Else
End
Оператор
;
;
Рисунок 30 Оператор варианта
Константа
. .
Оператор
,
Константа
:
Рисунок 31 Альтернатива
case Switch of;
Red: X:=Y+2;
1 . . 5: Proc1;
3, 4, 10 . . 20: Multiply(X,Y);
else X:=Y;
end
При выполнении данного оператора вначале вычисляется значение
селектора. Затем выбирается тот список значений, которому принадлежит
полученное значение, и выполняется соответствующий оператор. Switch –
выражение (селектор) любого порядкового типа, значение которого
вычисляется. “Red”, “1 . . 5”, “3, 4, 10 . . 20“, – константы, с которыми
сравнивается значение выражения Switch. “X:=Y+2”, “Proc1”,
“Multiply(X,Y)” – операторы, из которых выполняется тот, с константой
которого совпадает значение выражения Switch. Селектор может
принадлежать целому, логическому, с
имвольному, перечисляемому и
ограниченному типам. Каждый оператор, идущий за двоеточием,
отделяется от следующего списка значений точкой с запятой. Ветвь
else
X:=Y
, отвечающая всем не перечисленным значениям селектора Switch,
необязательна.
Если для нескольких констант нужно выполнять один и тот же
оператор, их можно перечислять через запятую (или указать диапазон,
если это возможно), сопроводив их одним оператором.
40
В списках значений оператора
case допустимыми являются типы
переменных, называемые скалярными, включая целые и исключая
вещественные типы. Любое заданное значение селектора может входить в
список значений неоднократно, но выполняться будет лишь первая
подходящая ветвь. Если значение селектора отсутствует в списках
значений, ни одна из альтернатив выполняться не будет. В этом случае
выполняется ветвь
else оператора case или (если эта ветвь отсутствует)
следующий за
case оператор. Ветвь else допускает последовательность
операторов, разделенных символом ”;” (точка с запятой).
Обратите внимание, что синтаксис языка предполагает один
оператор для каждой альтернативы. При необходимости задания
нескольких операторов следует сгруппировать их в составной оператор.
Пример 8. Оператор варианта
Смотри условие примера №7. Реализуем данную программу с
помощью оператора варианта.
Программа 2
Var P:char; {Пол кандидата}
V,K:real; {Возраст человека. Возраст кандидата}
Begin write(‘Кто Вы мужчина или женщина? Ответьте M или D’);
Readln(P);
write(‘Ваш возраст’); readln(V);
if V<17 then begin
writeln(‘Вы еще молоды’);
exit {Процедура завершения программы}
end;
case P of
'd', 'D': K:=2*V-14;
'm', 'M': K:=V/2+7
else writeln('Неверно введен пол');
exit end;
writeln(‘Подходящий возраст кандидата ’,K,’ лет’);
End.
В списках значений оператора case допустимыми являются типы Оператор варианта переменных, называемые скалярными, включая целые и исключая вещественные типы. Любое заданное значение селектора может входить в Данный оператор является обобщением условного оператора. список значений неоднократно, но выполняться будет лишь первая Можно конкретно сопоставить различным значениям некоторого подходящая ветвь. Если значение селектора отсутствует в списках выражения соответствующие им операторы. значений, ни одна из альтернатив выполняться не будет. В этом случае Case Селектор Of Альтернатива Else Оператор End выполняется ветвь else оператора case или (если эта ветвь отсутствует) ; ; следующий за case оператор. Ветвь else допускает последовательность операторов, разделенных символом ; (точка с запятой). Рисунок 30 Оператор варианта Обратите внимание, что синтаксис языка предполагает один оператор для каждой альтернативы. При необходимости задания Константа .. Константа : Оператор нескольких операторов следует сгруппировать их в составной оператор. , Пример 8. Оператор варианта Рисунок 31 Альтернатива Смотри условие примера №7. Реализуем данную программу с помощью оператора варианта. case Switch of; Программа 2 Red: X:=Y+2; 1 . . 5: Proc1; Var P:char; {Пол кандидата} 3, 4, 10 . . 20: Multiply(X,Y); V,K:real; {Возраст человека. Возраст кандидата} else X:=Y; Begin write(Кто Вы мужчина или женщина? Ответьте M или D); end Readln(P); При выполнении данного оператора вначале вычисляется значение write(Ваш возраст); readln(V); селектора. Затем выбирается тот список значений, которому принадлежит if V<17 then begin полученное значение, и выполняется соответствующий оператор. Switch writeln(Вы еще молоды); выражение (селектор) любого порядкового типа, значение которого вычисляется. Red, 1 . . 5, 3, 4, 10 . . 20, константы, с которыми exit {Процедура завершения программы} сравнивается значение выражения Switch. X:=Y+2, Proc1, end; Multiply(X,Y) операторы, из которых выполняется тот, с константой которого совпадает значение выражения Switch. Селектор может case P of принадлежать целому, логическому, символьному, перечисляемому и 'd', 'D': K:=2*V-14; ограниченному типам. Каждый оператор, идущий за двоеточием, 'm', 'M': K:=V/2+7 отделяется от следующего списка значений точкой с запятой. Ветвь else X:=Y, отвечающая всем не перечисленным значениям селектора Switch, else writeln('Неверно введен пол'); необязательна. exit end; Если для нескольких констант нужно выполнять один и тот же writeln(Подходящий возраст кандидата ,K, лет); оператор, их можно перечислять через запятую (или указать диапазон, если это возможно), сопроводив их одним оператором. End. 39 40
Страницы
- « первая
- ‹ предыдущая
- …
- 18
- 19
- 20
- 21
- 22
- …
- следующая ›
- последняя »