Логические операторы Delphi

В общем виде логика выглядит так:

if Условие выполнено then Действие1;

Если нужно выполнить два действия, то нужно написать так:

if Условие выполнено then begin Действие1; Действие2; end

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

if Условие1 выполнено then If Условие2 выполнено then Действие1;

Если условие1 верно, то выполнится следующее за логикой действие, а это вто­рая проверка. Если вторая проверка (условие 2) верна, то выполнится действие. Если хотя бы одно из условий не выполнится, то цепочка прерывается, и действие не будет выполнено.

 

Второй способ в большинстве случаев удобнее и нагляднее. Он может быть представлен следующим кодом:

if (Условие1 выполнено) and (Условие2 выполнено) then Действие1;

В этом примере две проверки объединены в одну. Если Условие1 и Условие2 верны, то выполнится действие.

 

А если вам нужно выполнить действие, если хотя бы одно из условий верно? Не обязательно, чтобы оба сразу, а хотя бы одно. В этом случае можно для объеди­нения использовать не and, a or. Это будет выглядеть так:

 

if (Условие1 выполнено) or (Условие2 выполнено) then Действие1;

 

Если вы объединяете два условия в один оператор if, то их обязательно нужно оградить скобками. Если вы их не поставите, то будет ошибка. Вот пример непра­вильного оформления:

if Условие1 выполнено or Условие2 выполнено then Действие1;

В этом случае будет не объединение двух проверок, а бинарная операция (би­нарные операции требуют отдельного разговора), для которой неправильно запи­сана строка. Поэтому и возникает ошибка.

 

В качестве условий можно применять следующие операторы 

Операторы сравнения

Оператор

Описание

Пример использования

Меньше

Index < 10

Больше

Index > 10

=

Равно

Index = 10

о

Не равно

Index о 10

< =

Меньше либо равно

Index < = 10

> =

Больше либо равно

Index > = 10

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

 

var b:Boolean;

begin b:=true;

if b then

Выполнить действие;

end;

 

В этом примере происходит проверка булевой переменной ь. Но с чем ее срав­нивают, не указано. Как вы знаете, булевы переменные могут принимать одно из двух значений: true или false (истина или ложь). Так вот в этом случае происхо­дит проверка на истину. Если булева переменная равна true, то действие будет вы­полнено. Если ь равна false, то действие не будет выполнено.

 

До сих пор мы рассматривали сокращенный вид логики if. В полном виде она выглядит так:

 

If Условие выполнено then Действие1

else Действие2

 

В этом виде если условие выполнено, то выполнится действие1 иначе выпол­нится действие2.

ВНИМАНИЕ. Вы уже должны знать, что каждый оператор должен заканчиваться точ­кой с запятой. Запомните, что после любого оператора перед else точка с запятой не ставится. Это как исключение, которое надо помнить

Давайте рассмотрим пару примеров. Рассмотрите листинг, в котором собра­но несколько операторов сравнения.

 

var

i:integer; begin if i>0 then

i:=i+10 //Обратите внимание, что точки с запятой нет. else i:=i+20

if i<0 then begin i:=10; i:=i-2;

end // Обратите внимание, что точки с запятой нет. else begin i:=2 0; i:=i-2; end; end;

Вот теперь рассказано все необходимое о логических операциях и как с ними работать.

При использовании логических операций — результат сравнения всегда должен быть логическим.

СОВЕТ. Нельзя написать так — if i:=o then. Здесь в операторе используется при­сваивание, а у него нет результата, значит, произойдет ошибка. Чтобы не делать таких ошибок, просто запомните, что при использовании оператора if обязательно должны использоваться только логические операции равенства, больше, меньше и т. д.

Единственный случай, когда можно опускать операторы сравнения, — когда проверяется логическая переменная. Например:

 

var

perem:Boolean;

begin perem:=true;

if perem then perem:=false;

end;

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

dle

Помоги проекту! Расскажи друзьям об этом сайте: