Форма входа

Категории раздела

Мои статьи [15]

Поиск

Наш опрос

Оцените мой сайт
Всего ответов: 62

Статистика


Онлайн всего: 2
Гостей: 2
Пользователей: 0




Понедельник, 25.11.2024, 07:29
Приветствую Вас Гость | RSS

Delphiport.ucoz.com

Главная | Регистрация | Вход
Каталог статей


Главная » Статьи » Мои статьи

Один из тысячи или волшебный оператор Case

   Если оператор If и конструкция If then else, - предназначены для выбора одного из двух действий, то оператор Case и конструкция Case of else -

предназначены для выбора одного из любого количества вариантов. 

Перевести  конструкцию  Case...        of...        else...    на русский язык, можно примерно так:

                                      Вариант...  из...        иначе... 

   Понять что это все означает, нам поможет следующий пример.

Работаем мы скажем с компонентом RadioGroup, со вкладки Standart и нам нужно, так его настроить, чтобы при выборе одной из скажем шести

позиций c 1 по 5, переменная с принимала значения от 10 до 14, а при выборе шестой, срабатывало  else и переменной присваивалось значение,

скажем - 5.

  Для этого:

  1) Кидаем на форму компоненты Label и RadioGroup;

  2) Выбираем свойство Items у компонента RadioGroup, где прописываем позиции, от одного до шести, а свойство  ItemIndex устанавливаем в 0,  

  так-как нумерация строк в компоненте начинается с нуля;

  3) Создаем обработчик событий RadioGroup1Click на RadioGroup где записываем следующее:

var

c:Integer; 

begin

case  Radiogroup1.ItemIndex  of

0: c:=10;

1: c:=11;

2: c:=12;

3: c:=13;

4: c:=14;

else

c:=5;

end;

Label1.Caption:=IntToStr(c);

end;

  Запускаем проект и наблюдаем, что если мы вибираем окошки с 1 по 5, для с присваивается значения от 10 до 14 соответственно, а если окошко 6

тогда 5. 

  Прокомментировать происходящее можно примерно так, допустим мы установили галочку в четвертом по счету окошке:

  1) В начале анализируется выражение стоящее за оператором Вариант (Case), это Radiogroup1.ItemIndex;  

  2) Затем просматривается ряд констант  Из (of)  этого оператора  это:  

0: c:=10;

1: c:=11;

2: c:=12;

3: c:=13;

4: c:=14;

  3) Если константа равная значению (какое именно из всех шести позиций -  OnClick  ) найдена, выполняется оператор стоящий за константой, в

       нашем случае c:=13; 

  4) Если константа равная значению (какое именно из всех шести позиций -  OnClick  ) не найдена,  обработка передается оператору else - c:=5; В

       этом можно легко убедиться выделив шестое по счету окошко.  

  5) И только за тем обработчик выполняет действие  Label1.Caption:=IntToStr(c); отображая содержимое переменной - с.

       Кстати, так же как и в   If then else, применение слова else здесь - не является обязательным. При его отсутствии, когда ключу выбора нет

    соответствия, Case - просто прекращает работу. 

      Еще один момент относительно синтаксиса. Если для нескольких вариантов нужно выполнять один и тот же оператор, то эти варианты можно 

    перечислить через запятую. Давайте для закрепления материала, рассмотрим еще один не большой примерчик, где все это и разберем.

    Напишем программку, которая по нажатию клавиши Button будет определять четное или не четное число введено в Edit (ввод чисел от 1-10),

    выдавая при этом соответствующее сообщение. Для этого:

  1) Кидаем на нашу форму два компонента  Edit и Button;

  2) В событии OnClick Button пишем наш код:

var

a:Integer;

begin

a:=StrToInt(Edit1.Text);

Case a of
// Анализруем a;

0: ShowMessage('Ноль это ноль');
//Если a = 0, вывести сообщение - "Ноль - это ноль";

2,4,6,8,10: ShowMessage('Внимание!!! Введено четное число'); 
{Если a = 2 или 4 или 6 или 8 или 9 или 10, вывести сообщение - "Введено 

четное число";}

1,3,5,7,9: ShowMessage('Внимание!!! Введено не четное число');
{Если a = 1 или 3 или 5 или 7 или 8 или 9, вывести сообщение - "Введено 

не четное число";}

end;

end;

  Запускаем программу, вводим в наш Edit любое число от одного до десяти и нажимаем кнопку. Если вы внимательно изучили данную статью, то

комментарии я думаю будут излишни. 

  Теперь придумайте какой нибудь свой примерчик, и для пользы дела поэкспериментируйте с Case самостоятельно.


Категория: Мои статьи | Добавил: Sashok (16.11.2011)
Просмотров: 1816 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:

Copyright MyCorp © 2024