Задачи

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

Условный оператор 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 - это единый блок. Если в какой-то ветви if необходимо выполнить несколько операторов, то они объединяются в группу, которя начинается со слова begin и заканчивается словом end. Такую конструкцию принято называть составным оператором.

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

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

var
  a: integer;
begin
  readln(a);
  if (a mod 2 = 1) or (a mod 2 = -1) 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 <> 0 then writeln('Число нечетное')
       else writeln('Число четное');
end.
 

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