В общем виде логика выглядит так:
Если нужно выполнить два действия, то нужно написать так:
При проверке нескольких условий можно использовать несколько способов. Первый из них можно определить следующим образом:
Если условие1 верно, то выполнится следующее за логикой действие, а это вторая проверка. Если вторая проверка (условие 2) верна, то выполнится действие. Если хотя бы одно из условий не выполнится, то цепочка прерывается, и действие не будет выполнено.
Второй способ в большинстве случаев удобнее и нагляднее. Он может быть представлен следующим кодом:
В этом примере две проверки объединены в одну. Если Условие1 и Условие2 верны, то выполнится действие.
А если вам нужно выполнить действие, если хотя бы одно из условий верно? Не обязательно, чтобы оба сразу, а хотя бы одно. В этом случае можно для объединения использовать не and, a or. Это будет выглядеть так:
if (Условие1 выполнено) or (Условие2 выполнено) then Действие1;
Если вы объединяете два условия в один оператор if, то их обязательно нужно оградить скобками. Если вы их не поставите, то будет ошибка. Вот пример неправильного оформления:
В этом случае будет не объединение двух проверок, а бинарная операция (бинарные операции требуют отдельного разговора), для которой неправильно записана строка. Поэтому и возникает ошибка.
В качестве условий можно применять следующие операторы
Операторы сравнения
|
Существует одно исключение, при котором оператор может отсутствовать. Если вы проверяете булеву переменную, то оператор можно опустить. Пример такого случая:
var b:Boolean;
begin b:=true;
if b then
Выполнить действие;
end;
В этом примере происходит проверка булевой переменной ь. Но с чем ее сравнивают, не указано. Как вы знаете, булевы переменные могут принимать одно из двух значений: true или false (истина или ложь). Так вот в этом случае происходит проверка на истину. Если булева переменная равна true, то действие будет выполнено. Если ь равна false, то действие не будет выполнено.
До сих пор мы рассматривали сокращенный вид логики if. В полном виде она выглядит так:
If Условие выполнено then Действие1
else Действие2
В этом виде если условие выполнено, то выполнится действие1 иначе выполнится действие2.
Давайте рассмотрим пару примеров. Рассмотрите листинг, в котором собрано несколько операторов сравнения.
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;
Вот теперь рассказано все необходимое о логических операциях и как с ними работать.
При использовании логических операций — результат сравнения всегда должен быть логическим.
Единственный случай, когда можно опускать операторы сравнения, — когда проверяется логическая переменная. Например:
var
perem:Boolean;
begin perem:=true;
if perem then perem:=false;
end;
В этом примере нет никаких операторов типа равенства, больше или меньше, потому что переменная param логическая и проверяется она. Если она равна true, то следующее действие выполнится, если нет, то пропустится.