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

Условный оператор if предназначен для  выполнения последовательности операторов в зависимости от логического условия. Существует сокращенный и полный варианты оператора if. Сокращенный вариант:


if <условие> then <оператор>;

В условии может использоваться любое логическое выражение, результатом которого является значение типа boolean. Тип данных boolean может принимать только два значения: true или false. В таблице приведены операции сравнения, тип результата которых является  boolean:

Обозначение Операция
= Равно
<> Не равно
< Меньше
<= Меньше или равно
> Больше
>= Больше или равно
in Принадлежность

Также в условиях можно использовать логические операции:

Обозначение Операция
not Отрицание
and Конъюнкция (логическое умножение)
or Дизъюнкция (логическое сложение)

Например, выведем сообщение, если введенное значение нечетное:


var
  a: integer;
begin
  readln(a);
  if a mod 2 = 1 then writeln('Число нечетное');
end.

В полном варианте условного оператора, если условие принимает значение true, выполняется оператор, который следует за словом then, в противном случает выполняется оператор, который следует за словом else:


if <условие> then <оператор>
else <оператор>;

Например, выведем соответствующее сообщение в зависимости от четности введенного натурального числа:


var
  a: integer;
begin
  readln(a);
  if a mod 2 = 1 then writeln('Число нечетное')
  else writeln('Число четное');
end.

Обратите внимание, перед словом else точка с запятой не ставится, потому что конструкция if..else  - это единый блок. Если в какой-то ветви оператора необходимо выполнить несколько операторов, то они объединяются в группу, которя начинется с слова begin и заканчивается словом end. Такую конструкцию принято называть составным оператором.


if <условие> then begin
    <оператор1>;
    <оператор2>;
  end;
else begin
    <оператор1>;
    <оператор2>;
  end;

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


var
  a: integer;
begin
  readln(a);
  if not (a mod 2 = 0) and (a <> 0) then writeln('Число нечетное');
end.

 Если вариантов исполнения операторов больше двух, то можно использовать следующую конструкцию:


if <условие1> then begin
    <оператор1>;
    <оператор2>;
  end;
else if <условие2> begin
       <оператор1>;
       <оператор2>;
      end
     else begin
        <оператор1>;
        <оператор2>;
      end;

Например, в задаче проверки на четность добавим вывод сообщения, если введенное число равно 0.


var
  a: integer;
begin
  readln(a);
  if a = 0 then writeln('Введенное число 0')
  else if (a mod 2 = 1) or (a mod 2 = -1) then writeln('Число нечетное')
       else writeln('Число четное');
end.

 

Задачи для самостоятельного решения