Оператор выбора CASE, или Выбирай, но осторожно. Delphi XE

Направо пойдёшь — коня потеряешь; налево пойдёшь — себя потеряешь; прямо пойдёшь — и себя, и коня потеряешь!

Сказочный выбор

Условный оператор IF обычно применяют, когда вариантов выбора не очень много (два-три), в противном случае гораздо удобнее использовать оператор CASE, который делает запись более компактной и понятной.

В общем случае оператор case имеет вид:


	Case выражение of
	Константа1: оператор1;
	Константа2: оператор2;
	Константа^ оператор^
	Else оператор; 
	End;
	

Точку с запятой перед Else можно ставить (а можно и не ставить). Оператор Else может вообще отсутствовать в записи оператора case.

Константы 1-N называются константами выбора или метками случаев.

 

В пределах одного оператора case они не должны повторяться!

Выражение должно быть порядкового типа - целого, символьного, логи­ческого, перечисление или диапазон. Оно записывается между ключевыми словами case и of и называется также селектором или индексом выбора.

Иногда для нескольких констант следует выполнить одни и те же дей­ствия (оператор(ы)), тогда константы перечисляют через запятую:

2,3,5,7: print «Простые числа».

 

Точно так же можно указать и диапазон значений:

1..10: print «Первый десяток чисел».

 

 

Оператор должен быть составным, если для какой-либо константы выбо­ра необходимо выполнить несколько операторов.

Закончим пример с простыми числами первого десятка.


		Var number: 0..10;
		Case number of
		2,3,5,7: Application.MessageBox(’Простое число!’, ’’, MB_OK) else Application.MessageBox(’Составное число!’, ’’, MB_OK);
		End;
		

Или без оператора Else:


		Case number of
		2,3,5,7: Application.MessageBox(’Простое число!’, ’’, MB_OK); 1,4,6,8,10:     Application.MessageBox(’Составное число!’, ’’,
		MB_OK);
		End;
		

Эта же смысловая конструкция с оператором if выглядела бы так:

if (number = 2) or (number = 3) or (number = 5) or (number = 7) then Application.MessageBox(’Простое число!’, ’’, MB_OK) else Application.MessageBox(’Составное число!’, ’’, MB_OK);

Без оператора else она была бы ещё ужасней!

 

Оператор case действует так.

  •  Значение выражения последовательно сравнивается со всеми мет­ками случаев.
  •  При равенстве выполняются операторы, соответствующие совпав­шей константе, а затем управление передаётся оператору, следую­щему за словом End; оператора case.
  •  Если значение выражения не совпало ни с одной константой выбо­ра, то выполняется оператор после слова else, а затем управление передаётся оператору, следующему за словом End; оператора case.
  • Если ключевое слово else отсутствует, то ни один оператор в case вообще не выполняется.
  • Для нашего примера.
  • Если значение number равно 3, то мы получим сообщение «Простое чис­ло!».

Если значение number равно 6, то мы получим сообщение "Составное число"


Если значение number равно 0, то мы получим сообщение «Составное чис ло!» в первой записи (с оператором Else) и не получим никакого сообще ния во второй записи (без оператора Else).

test


������� ������ ��� dle ������� ��������� ������

Помоги проекту! Расскажи друзьям об этом сайте: