Меню
Спросить
({ })

Оператор выбора case of

30 августа 2017
Оператор выбора case of

Всем привет, мы учимся программировать каждый день, мы взбираемся на горы кода, чтобы понять, что мы допустили ошибку в самом начале и спуститься вниз. Но пока мы еще ни разу не спустились, ну или не осознали своей ошибки, давайте продолжим учиться писать сайты и программировать. На прошлом уроке мы изучили циклы в Pascal, я надеюсь вы потренировались дома и не забываете это делать, иначе нахрена вам это нужно. Так вот, поехали =)

Оператор case of

Давайте попробуем сформулировать определения нашего оператора.
Оператор case - он же кейс, он же чемодан. Предназначен для переноса данных, информации и денег, а так же багажа на отдых в Тайланд. Повторите это правило 10 раз пока оно не уложится в голове.
А кого эти шутки за триста уже достали, давайте откроем Pascal.
Открыли? Закройте, оно вам не нужно.
Все открываем и пишем все как обычно:

  1. program pr1;
  2. uses crt;
  3. var
  4. begin
  5. clrscr;
  6. readkey;
  7. end.

Кто написал сам и не подсмотрел, большой молодец. Кстати, если вам важно, как я показываю это все на видео (в отдельном окне, типо командная строка или же в том же окне Pascal)? Напиши в комменты или в ВК.
Поехали дальше.
Сначала напишем код, потом будем объясняться друг другу.
Давайте, объявим переменную со строковым типом данных.

  1. program pr1;
  2. uses crt;
  3. var
  4. a : string;
  5. begin
  6. clrscr;
  7. readkey;
  8. end.

Далее, напишем вывод информации, зададим вопрос пользователю и предложим варианты ответа.

  1. program pr1;
  2. uses crt;
  3. var
  4. a : string;
  5. begin
  6. clrscr;
  7. writeln ( 'О каком из языков вы хотите узнать?' );
  8. writeln ( 'css, html, pascal, php' );
  9. readkey;
  10. end.

После, как мы вывели информацию на экран, считаем, введенную пользователем, информацию в переменную а.

  1. program pr1;
  2. uses crt;
  3. var
  4. a : string;
  5. begin
  6. clrscr;
  7. writeln ( 'О каком из языков вы хотите узнать?' );
  8. writeln ( 'css, html, pascal, php' );
  9. readln (a);
  10. readkey;
  11. end.

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

  1. Вводим системное слово case
  2. Через пробел, пишем название переменной из которой берем информацию
  3. Вводим через пробел системное слово of
  4. Далее идет тело оператора case
  5. И в конце ставим end;

Пока ни чего не понятно про оператор case и нахрена он вам сдался? Продолжаем не останавливаемся. Теперь напишем, по вышесказанный пяти пунктам, в нашу программу код:

  1. program pr1;
  2. uses crt;
  3. var
  4. a : string;
  5. begin
  6. clrscr;
  7. writeln ( 'О каком из языков вы хотите узнать?' );
  8. writeln ( 'css, html, pascal, php' );
  9. readln (a);
  10. case a of
  11. тело оператора
  12. end;
  13. readkey;
  14. end.

Дальше, что будем писать в тело оператора? Кто догадался, тому пять, а может шесть раз объясняли, что такое оператор case.
В тело оператора пишем варианты выбора, помните, выше мы просили пользователя ввести инфу и предлагали варианты ответов, так вот эти самые варианты мы и должны написать.
Но писать нужно правильно.
Так как, у нас переменная строкового типа, значит она будет содержать в себе строку соответственно. Значит, мы должны писать варианты в апострофах. Слушаем дальше, каждый вариант пишем отдельно, после варианта ставим двоеточие и открываем уже его тело, тело варианта. Тело состоит из логических скобок и нужных вам действий с этим вариантом.
Давай напишем все варианты.

  1. program pr1;
  2. uses crt;
  3. var
  4. a : string;
  5. begin
  6. clrscr;
  7. writeln ( 'О каком из языков вы хотите узнать?' );
  8. writeln ( 'css, html, pascal, php' );
  9. readln (a);
  10. case a of
  11.    'css' :
  12.       begin
  13.          действия
  14.       end;

  15.    'html' :
  16.       begin
  17.          действия
  18.       end;

  19.    'pascal' :
  20.       begin
  21.          действия
  22.       end;

  23.    'php' :
  24.       begin
  25.          действия
  26.       end;
  27. end;
  28. readkey;
  29. end.

Теперь отложим дело в сторону, закроем глаза и отдохнем.
Отдохнули? Подъем!!!
Теперь, забыли написанный выше код на время.
Включаем фантазию, представьте к вам пришел некий человек, пусть будет Василий.
В руках у него чемодан, ну или КЕЙС.
Он спрашивает - О каком из языков ты бы хотел узнать?
Ты ему говоришь свой вариант.
Вася открывает КЕЙС и показывает имеющиеся у него варианты.
Если у него есть такой вариант, который нужен тебе, то он тебе его отдает, если нет, то выдает - извиняй бро, такого не держим, то есть информирует об ошибке и отсутствии нужного нам варианта.

Это и есть работ оператора CASE. Врубились? Если нет, прочитайте еще раз и сравните с нашим кодом выше.
Теперь нам осталось дописать действия к нашим вариантам в КЕЙСЕ и информировать пользователя об ошибке, в случае, если его вариант отсутствует в нашем ящике пандоры.
В роли действий, мы просто будем выводить информацию об выбранном языке, ошибка у оператора CASE, пишется после оператор ELSE.

  1. program pr1;
  2. uses crt;
  3. var
  4. a : string;
  5. begin
  6. clrscr;
  7. writeln ( 'О каком из языков вы хотите узнать?' );
  8. writeln ( 'css, html, pascal, php' );
  9. readln (a);
  10. case a of
  11.    'css' :
  12.       begin
  13.          writeln ( 'CSS - Это каскадные таблицы стилей' );
  14.       end;
  15.    'html' :
  16.       begin
  17.          writeln ( 'HTML - Это язык гипертекстовой разметки' );
  18.       end;
  19.    'pascal' :
  20.       begin
  21.          writeln ( 'PASCAL - Это язык, на котором написана эта программа' );
  22.       end;
  23.    'php' :
  24.       begin
  25.          writeln ( 'PHP - Это язык на котором пишут движки для сайтов' );
  26.       end;
  27. end;
  28. else writeln ( 'Ошибка, перезапустите программу!' );
  29. readkey;
  30. end.

Вот и все, осталось запустить и проверить работу программы и оператора case.

Оператор case pascal knlnt

Запускаем case

Запускаем и видим первое:

  1. О каком из языков вы хотите узнать?
  2. css, html, pascal, php

Выбираем любой из 4 вариантов, пишем выбранный вариант:

  1. О каком из языков вы хотите узнать?
  2. css, html, pascal, php
  3. pascal

И нажимаем ENTER. Ииии программа на выдает:

  1. О каком из языков вы хотите узнать?
  2. css, html, pascal, php
  3. pascal
  4. PASCAL - Это язык на котором написана эта программа

О чудо оно разговаривает!!!
Программа работает как нужно, мы можем выбрать любой из 4 вариантов и программа нам выдаст информацию об выбранном нами языке.
В случае если вы ввели вариант, который в КЕЙСЕ не содержится, Вася вам скажет - Ошибка, перезапустите программу :D.
Кстати, программа будет реагировать как ошибка, если вы введет один из вариантов кейса в другом регистре. Например, в кейсе мы написали маленькими буквами, а программе дали ответ большими буквами, он среагирует как ошибка, имейте ввиду =)

Заключение

Вот и все, думаю работа оператора case of вам теперь понятна.
Вот вам домашнее задание дети:
Помните мы писали калькулятор в одном из уроков, так вот. Перепишите или напишите свой калькулятор, только с использованием уже не условий, а с использованием оператора case of.
Всем спасибо за урок, пока =)

Следующая статьяПредыдущая статья