Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Множественное ветвлениеОператор IF разделяет программу на два набора операторов, выполняемых в зависимости от результата вычисления заданного условия. Бывают ситуации, когда этого недостаточно. Например, пусть мы пишем программу-калькулятор. Она запрашивает у пользователя два числа и код выполняемого над ними действия (1 – сложение, 2 – умножение, 3 – вычитание, 4 - деление). Конечно, можно обойтись и кучей операторов IF, например, так: VAR c:BYTE; … c:=IntToStr(LabeledEdit1.Text); IF c=1 THEN r:=a+b; IF c=2 THEN r:=a*b … и т.д. Но выглядит такая программа запутанно. Здесь лучше применить оператор множественного ветвления CASE. Для его использования должны соблюдаться два правила: во-первых, во всех проверяемых условиях одна и та же переменная должна сравниваться с константами. Так оно и есть: переменная с сравнивается с единицей, двойкой и т.д. Во-вторых, тип переменной с должен быть ограниченным. Это означает, что можно перечислить все значения этого типа. Скажем, тип BYTE – ограниченный, так как переменная типа BYTE принимает значения только от 0 до 255 и все их можно перечислить. А вот переменная типа REAL принимает бесчисленное множество значений (число дробных чисел в любом интервале бесконечно) и ее нельзя использовать в операторе CASE. Его общий вид таков:
Обратите внимание, что слово END относится к самому оператору CASE и не требует никакого парного себе BEGIN. Заменим кучу IF'ов одним CASE: CASE c OF { c – переменная перечислимого типа } 1: r:=a+b; (если с=1, выполняется оператор r:=a+b) 2: r:=a*b; 3: r:=a-b; 4: IF b<>0 THEN r:=a/b ELSE Label1.Caption:='Деление на ноль' ELSE Label1.Caption:='введен неверный код действия' END; В CASE перечисляются возможные значения переменной, а после них через двоеточие записывается один-единственный оператор (надо больше – пишем BEGIN..END), выполняющийся, если переменная, имя которой указано между словами CASE и OF, равна указанному перед двоеточием значению. В операторе CASE может быть часть "иначе" (ELSE), оператор в которой выполняется, если значение переменной не совпало ни с одним из заданных.
|