вторник, 21 апреля 2015 г.

Урок 2: Оператор выбора case


Оператор варианта необходим в тех случаях, когда в зависимости от значения какой-либо переменной нужно выполнить те
или иные операторы (простые или составные). Если вариантов всего два, то можно обойтись и оператором IF. 
Но если их, например, десять? В этом случае оптимален оператор варианта CASE.
Синтаксис оператора CASE:
CASE УправляющаяПеременнаяИлиВыражение OF
    НаборЗначений1 : Оператор1;
    НаборЗначений2 : Оператор2;
    НаборЗначений3 : Оператор3;
            . . .
    НаборЗначенийN : ОператорN
    ELSE АльтернативныйОператор
END;

                                                          Блок-схема оператора выбора 














Между служебными словами CASE и OF должна стоять переменная или выражение (оно вычисляется при исполнении 
оператора CASE) целочисленного или любого порядкового типа.  
Набор значенийэто конкретные значения управляющей переменной или выражения, при которых необходимо 
выполнить соответствующий оператор, игнорируя остальные варианты. Если в наборе несколько значений, то они
 разделяются между собой запятой. Можно указывать диапазоны значений, например, 0..9 – все значения от нуля до девяти. 
Наборы значений и диапазоны можно комбинировать. Между набором значений и соответствующим ему оператором
 обязательно ставится символ “:”. 
Значения в каждом наборе должны быть уникальными, т.е. они могут появиться только в одном варианте. Пересечение 
наборов значений для разных вариантов является ошибкой, и она будет замечена компилятором.
Оператор (Оператор1, Оператор2, …) в конкретном варианте может быть как простым, так и составным.
Пример 1.
PROGRAM Example_CASE_1;
VAR A : integer;
BEGIN
    Write(‘Введите оценку: ‘); Read(A);
    CASE A OF
        2 : Write(‘неудовлетворительно’);
        3 : Write(‘удовлетворительно’);
        4 : Write(‘хорошо’);
        5 : Write(‘отлично’)
        ELSE Write(‘Ошибка!’)
    END;
END.
Здесь в зависимости от значения переменной А на экран выводится наименование оценки. Наличие варианта ELSE 
обеспечивает вывод сообщения об ошибке в случае, когда введено число вне интервала 2..5.
Пример 2.
PROGRAM Example_CASE_2;
VAR Hour : integer;
BEGIN
    Read( Hour );
    CASE Hour OF
        0, 24 : Write(‘Полночь’);
        1..4 : Write(‘Ночь’);
        5..7 : Write(‘Раннее утро’);
        8..11 : Write(‘Утро’);
        12 : Write(‘Полдень’);
        13..17 : Write(‘День’);
        18..23 : Write(‘Вечер’)
        ELSE Write(‘Введено число вне диапазона 0..24!’)
    END;
END.












Комментариев нет:

Отправить комментарий