Организация ветвлений
Имея условие или переменную логического типа, можно заставить программу выполнять разные последовательности операторов в зависимости от результата вычисления условия. Например, напишем программу, которая запрашивает с клавиатуры два числа и сообщает, какое из них больше – первое или второе.
Ветвление в программе организуется двумя операторами: IF (как говорится в программистском фольклоре, узник замка Иф был программистом J) и CASE. Сначала рассмотрим главный оператор ветвления – IF. Его общий вид таков:
Полная форма | Сокращенная форма |
IF условие THEN оператор1ELSE оператор2; | IF условие THEN оператор1; |
Если (а IF по-английски и означает "если") условие истинно, то выполняется оператор1. Если же оно ложно, то либо выполняется оператор2, либо, при сокращенной форме – оператор, следующий за IF.
Наша программа будет выглядеть так (для краткости опустим оператор TRY..EXCEPT):
VAR a,b:REAL;
BEGIN
ClrScr;
a:=FloatToStr(LabeledEdit1.Text);
b:=FloatToStr(LabeledEdit1.Text);
IF a>b THEN
Label1.Caption:='Первое число больше второго'
ELSE
Label1.Caption:='Второе число больше первого'
END;
Обратите внимание на запись с отступами: операторы, стоящие внутри IF, смещаются вправо. Delphi этого не требует, ему все равно, а вот человеку разбираться в записи с отступами гораздо легче. Еще один важный момент – точка с запятой ставится только после второго оператора. Ни перед, ни после ELSE точки с запятой быть не может!
При использовании сокращенной формы записи нельзя забывать, что оператор, следующий за IF, про условие ничего не знает и никак с IF не связан. Скажем, следующий вариант программы ошибочен:
Второй оператор присваивания := никак не связан с IF и будет выполняться всегда. В итоге в любом случае программа будет выводить текст 'Второе число больше первого'. Сокращенную форму используют тогда, когда при невыполнении условия ничего делать не надо.
Дата добавления: 2015-03-19; просмотров: 563;