На главную Самоучитель pascal Форум программистов онлайн Решение задач pascal Задачи pascal Поиск
04 Июл 13

Оператор Case в Паскаль


Комментарии :  1        Просмотры :  6215



Помимо простого условия if в паскале предусмотрен ещё один тип выборки case. Условие if расходится только на две ветви true ( истина ) и false ( ложь ), в отличии от оператора выборки case , в котором можно выбрать несколько ветвей.

Если вы читали об обычном условии if на нашем сайте , то наверняка отметите некоторую схожесть между if и case.

Давайте рассмотрим оператор case более подробно на этой задаче : Нужно ввести число от 1 до 3 и вывести информацию о том , какое число мы ввели. Попробуем решить её с помощью условия if :
program mypascal;
var
x:byte;
begin

writeln('Введите число от 1 до 3 :');
readln(x);

if ( x = 1 ) then
writeln('Вы ввели 1');

if ( x = 2 ) then
writeln('Вы ввели 2');

if ( x = 3 ) then
writeln('Вы ввели 3');

end.

В начале программы мы объявляем единственную нужную нам переменную x , в которую будем записывать число вводимое с клавиатуры. Заметьте то , что переменная x имеет диапазон значение с 1 до 3 , поэтому мы можем присвоить ей небольшой тип данных byte ( 0..255 ).

После этого мы вводим переменную с клавиатуры. Далее следуют три условия if , которым соответствуют три разных значение переменной x.

Эту задачу также можно решить с помощью оператора выборки case :
program mypascal;
var
x:byte;
begin

writeln('Введите число от 1 до 3 :');
readln(x);

case x of
1: writeln('Вы ввели 1');
2: writeln('Вы ввели 2');
3: writeln('Вы ввели 3')
else
writeln('Вы ввели другое число');
end;

end.

Отличие в данной программе состоит только в том , что вместо условия if мы используем оператор выборки case.
Оператор выборки case

Оператор case работает так : В начале идет слово "Case". Далее мы пишем переменную , значение которой будем проверять ( в данном случае x ). Далее следует слово of и после него мы записываем возможные значения переменной x . Например строка 1: writeln('X = 1'); обозначает , что если x будет равно 1 , то будет выполнена команда writeln('X = 1');
Запомните : если вы хотите выполнить несколько команд , то записывайте их в блоке begin end :
case x of
1: begin writeln('X = 1'); writeln('Конец'); end;
end;

После записи возможных значений переменной x и того , что они выполняют , идет необязательный блок else ( перед else точка с запятой не ставится ).

В блоке else мы записываем то , что должна выполнить программа если значение переменной x не соответствует ни одному из перечисленных. Например если мы введем число 4 , то будет выполнен блок else ( выведет сообщение "Другое число" ). Если мы хотим выполнить несколько команд в блоке else , их следует записывать между begin end.

В конце оператора выборки case ставим end;

Особенности оператора case :

Возможные значения переменной можно задавать по разному. До этого мы задавали их так :
1: writeln('1');
2: writeln('2');
3: writeln('3');

Теперь давайте рассмотрим такой способ :
1,2,3: writeln('От 1 до 3');

В данном случае ветка выполнится если x будет равно 1 , 2 или 3. Проще говоря , возможные значения можно перечислять через запятую.

Также подобную ветку можно заменить так :
1..3: writeln('От 1 до 3');

Эта ветка будет выполнятся , когда переменная x будет равна 1 , 2 или 3.

Рассмотри такую задачу : требуется ввести число от 1 до 6 , если число четное вывести "число четное" ,а если нет , то вывести "число нечетное". Решим эту задачу оператором case.
program mypascal;
var
x:byte;
begin

writeln('Введите число от 1 до 6 :');
readln(x);

case x of
1,3,5: writeln('Число нечетное');
2,4,6: writeln('Число четное')
else
writeln('Вы ввели другое число');
end;

end.


Рейтинг материала : ( 5 / 4 )
Сообщить об ошибке
Комментарии :  1        Просмотры :  6215

Поиск

Решение задач

Если вас интересует решение какой-либо задачи , то вы можете опубликовать
её условие на нашем сайте или форуме. И в скором времени другие пользователи помогут вам.

Опубликовать на сайте

Опубликовать на форуме

Опрос

Какую разновидность паскаля вы предпочитаете ?