fbpx

Application Development for TechEditor: Tutorial

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

Star InactiveStar InactiveStar InactiveStar InactiveStar Inactive
 

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

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

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

  • IF
  • CASE

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

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

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

Здесь

  • Condition — условие типа Boolean
  • Action1 — действие при выполнении условия (Condition=True)
  • Action2 — действие при невыполнении условия (Condition=False)

В следующем примере функция 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.

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

  • операторы сравнения: = (равно), < (меньше), > (больше), <= (меньше либо равно), >= (больше либо равно), <> (не равно)
  • логические команды: and (и), or (или), not (не), xor (исключающее или)

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

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. Рекомендуется избегать следующих записей:

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.

Events

Sorry, we currently have no events.
View All Events

English forum

Simple calculator in TechEditor in 10 minutes!

Ontario Building Code 2012 | Load combination (Free Application & Report Template)

Videoreview version 1.0

New articles

Dystlab™ — Project for Engineers

Dystlab™. All rights reserved.

Address in Canada: 223-2275 Lake Shore Boulevard West, Toronto, ON, M8V 3Y3

Address in Ukraine: 76006, Ivano-Frankivsk, st. Ivana Mykolaichuka 17/97

E-mail:
technot needed texteditoranother not needed text@dystlabdummy text.store

Telegram:
https://t.me/techeditor

Legal information

Dystlab™ is a trademark registered in the State Register of Certificates of Ukraine for Goods and Services Marks 26.02.2018, certificate No. 238304. Owner: entepreneur Artomov V.E., EGRPOU/ITN: 3003314690.

All the most interesting about TechEditor — in Twitter. Join us now!

TechEditor Twitter