![]()
|
|||||||
Оператор выбора case ofСтр 1 из 2Следующая ⇒ Условная конструкция if then else позволяет нам реализовать несколько ветвлений в программе. Та же задача может быть реализована, более простым способом, с помощью оператора выбора - case of. Синтаксис оператора case следующий: case (выражение) of метка1: оператор1; метка2: оператор2; ... меткаN: операторN else операторE; end; Где метка1.. N - метки регистра или входные значения, которые могут быть целыми числами, символами, логическими или перечисляемыми элементами данных. Оператор1.. N - оператор Паскаля, каждый из них может иметь одну или несколько меток регистра, связанных с ним.
Оператор Else - выполняется только в том случае, если не было совпадения метки и выражения. Оператор case в Паскале, может содержать необязательный блок else, и должен завершается ключевым словом end. При использовании оператора case of соблюдать следующие правила:
Рассмотрим пример программы конвертации оценок пятибалльной шкалы в текст с помощью оператора ветвления if: {$CODEPAGE UTF8} program RatingToText; var rate: integer; begin write('Введите оценку 1-5 '); readln(rate);
if (rate = 1) or (rate = 2) then writeln('Неудовлетворительно'); if rate = 3 then writeln('Удовлетворительно'); if rate = 4 then writeln('Хорошо'); if rate = 5 then writeln('Отлично');
readln; end. Более простая запись того же кода с использованием конструкции case of: {$CODEPAGE UTF8} program RateToText; var rating: integer; begin write('Введите оценку 1-5 '); readln(rating);
case(rating) of 1, 2: writeln('Неудовлетворительно'); 3: writeln('Удовлетворительно'); 4: writeln('Хорошо'); 5: writeln('Отлично'); end;
readln; end. Рассмотрим пример программы конвертации номера дня недели в название: {$CODEPAGE UTF8} program NumDayToText; var day: integer; dayName: string; begin write('Номер дня недели '); readln(day);
case(day) of 1: dayName: = 'Понедельник'; 2: dayName: = 'Вторник'; 3: dayName: = 'Среда'; 4: dayName: = 'Четверг'; 5: dayName: = 'Пятница'; 6: dayName: = 'Суббота'; 7: dayName: = 'Воскресение' else dayName: = 'Ошибка: Значение не определено'; end; write(dayName); readln; end. В данном примере блок else, оператора выбора, используется для присваивания переменной информации об ошибке.
Пример 3. Составьте программу, которая по заданному году и номеру месяца определяет количество дней в этом месяце. program case_b1; var god, mes, k: integer; begin// Год является високосным в двух случаях: либо он кратен 4, но при этом не кратен 100, либо кратен 400. writeln('Введите год и номер месяца: '); readln(god, mes); case mes of 1, 3, 5, 7, 8, 10, 12: k: =31; 4, 6, 9, 11: k: =30; 2: if ((god mod 4 =0) and (god mod 100 < > 0)) or (god mod 400 = 0) then k: =29 else k: =28; else k: =0end; If k< > 0 then writeln('Кол-во дней в месяце: ', k) else writeln('Неверный номер месяца. '); end.
|
|||||||
|