fbpx

Условный оператор IF **

Print
Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive
 

В данной статье описаны приемы использования оператора if.

Условие — одна из важнейших компонент алгоритмов, цепочек действий, логических схем. В программировании условие применяется для изменения поведения программы в зависимости от состояния одного или группы параметров.

В языке программирования Pascal для работы с условиями применяются два основных оператора:

Общий формат использования оператора IF

Оператор if имеет следующий формат:

if <Condition> then <Action1> else <Action2>;

Здесь

В следующем примере функция Area возвращает площадь прямоугольника, если длина каждой его стороны не превышает 15. В противном случае функция возвращает 0:

function Area(a, b: Double): Double;
begin
if (a <= 15) and (b <= 15) then
Result := a * b
else
Result := 0;
end;

Форматы условий

В качестве условия в операторе if используется выражение логического типа Boolean. Выражение может иметь значение True (истина) или False (ложь). Если условие истинно, то выполняется блок команд THEN, иначе — команды в блоке ELSE.

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

Пример. Процедура проверяет имя пользователя и пароль на корректность и выдает предупреждение, если выявлена ошибка.

procedure Login(Username, Password: string);
begin
if Username = '' then
begin
ShowMessage('Empty name is not allowed!');
Exit;
end;
if (Password = '') or (Password = Username) then begin ShowMessage('Password is invalid!'); Exit; end;
// ...
end;

Вложенные условия

Условные операторы могут быть вложены друг в друга.

В следующем примере сначала выполняется проверка прочности элемента конструкции. Если проверка прочности проходит, то дополнительно выполняется проверка прогиба:

function AllCases(M, Mr: Double; f, fr: Double): Boolean;
begin
Result := False;
if M <= Mr then
if f <= fr then
Result := True
else
ShowMessage('SLS check is not performed')
else
ShowMessage('ULS check is not performed');
end;

При использовании вложенных условных операторов важно контролировать, к какому из них относится блок else. Рекомендуется избегать следующих записей:

//
// !!! NOT RECOMMENDED !!!
//
function F(x);
begin
if x < 0 then
if x < -100 then
Result := -100
else
Result := x; // (x<0) or (x<-100)???
end;

 Вместо этого, рекомендуется явно обозначить структуру кода операторными скобками begin..end:

function F(x);
begin
if x < 0 then
begin
if x < -100 then
Result := -100
else
Result := x;
end;
end;

Сокращенная запись оператора IF

Если по логике работы приложения ветка "иначе" не требуется, то допустима следующая упрощенная запись оператора IF:

if <Condition> then <Action1>;

В любых вариантах использования, если за командой then или else следует более одного оператора, то следует использовать операторные скобки begin..end.