В мові Delphi є інструкція case, яка дозволяє ефективно реалізувати множинний вибір. В загальному вигляді вона записується таким чином:
case змінна of
значення 1: оператор 1;
значення 2: оператор 2;
…
значення N: оператор N;
else оператор;
end;
case, of , end - зарезервовані слова.
Змінна - може бути однією із стандартних типів: символьним типом, цілим числом, перераховуваним типом.
Замість значення може стояти число, декілька чисел записаних через кому, символ записаний в одинарних лапках(‘z’), діапазон (1..4).
Робота оператора сase виконується наступним чином.
Спочатку, якщо необхідно обчислюється значення змінної. Потім шукається відповідність змінної значенням N. При рівності відбувається виконання оператора N і оператор case завершує свою роботу.
Якщо збігів не знайдено то виконується оператор розташований після слова else. За відсутності цього оператора, завершить свою роботу і буде виконаний наступний оператор.
Приклади:
case n_day of
1,2,3,4,5: day:='Робочий день. ' ;
6: day:='Cyбoтa!';
7: day:='Неділя!';
end;
case n_day
1..5: day:='Робочий день.';
6: day:='Субота!';
7: day:='Неділя!';
end;
case n_day
6: day:='Субота!';
7: day:='Неділя!';
else day:='Робочий день.';
end;
Проект1
Розробити проект, в якому потрібно ввести день тижня, а в Мемо вивести розклад уроків на цей день.
Код програми:
procedure TForm1.Button1Click(Sender: TObject);
var N:integer;
begin
N:=StrToInt(Edit1.Text);
case N of
1:begin Memo1.Lines.Add('1.Алгебра');Memo1.Lines.Add('2.Геометрія'); Memo1.Lines.Add('3.Фізика');end;
2:begin Memo1.Lines.Add('1.Економіка');Memo1.Lines.Add('2.Геометрія'); Memo1.Lines.Add('3.історія');end;
3:begin Memo1.Lines.Add('1.Інформатика');Memo1.Lines.Add('2.Геометрія'); Memo1.Lines.Add('3.Фізика');end;
6,7:Memo1.Lines.Add('Вихідний день');
end;
end;
Процедура для очистки Мемо:
procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.Lines.Clear;
end;