Условный оператор и оператор выбора
Условный оператор if
Оператор if выполняет действие в зависимости от условия.
Он имеет неполную форму — без else, и полную форму — с альтернативным действием в ветви else.
begin
var x := ReadInteger;
if x > 0 then
Println('Положительное число');
end.
Полная форма условного оператора if ... else
Конструкция if ... else позволяет выбрать одно из двух действий.
begin
var x := ReadInteger;
if x mod 2 = 0 then
Println('Чётное число')
else Println('Нечётное число');
end.
Составное условие с and и диапазоны
Логические операции and и or позволяют объединять несколько условий в одно составное, а операция in — проверять принадлежность значения диапазону.
begin
var x := ReadInteger;
if (x mod 2 = 0) and (x in 10..99) then
Println('Двузначное чётное число');
end.
Составное условие с or
Операция or позволяет выполнить действие, если истинно хотя бы одно из условий.
begin
var x := ReadInteger;
if (x < 0) or (x > 100) then
Println('Число вне диапазона 0..100');
end.
Проверка not in
Конструкция not in позволяет проверить, что значение не принадлежит диапазону.
begin
var x := ReadInteger;
if x not in 1..10 then
Println('Число вне диапазона 1..10');
end.
Цепочка условий else if
Цепочка else if позволяет поочерёдно проверять несколько условий и выполнить действие для первого выполненного условия.
Если ни одно из условий не выполняется, то выполняется действие по последней ветке else.
begin
var x := ReadInteger;
if x > 0 then
Println('Положительное число')
else if x < 0 then
Println('Отрицательное число')
else Println('Ноль');
end.
Условная операция
Условная операция позволяет выбрать одно из двух значений непосредственно в выражении.
begin
var (a,b) := ReadInteger2;
var max := if a > b then a else b;
Println(max);
end.
Максимум трёх чисел
Найдём максимум трёх чисел, последовательно сравнивая их с текущим максимальным значением.
begin
var (a,b,c) := ReadInteger3;
var max := a;
if b > max then max := b;
if c > max then max := c;
Println(max);
end.
Выбор варианта с помощью оператора case
Оператор case удобен, когда нужно выбрать действие в зависимости от значения выражения.
begin
var day := ReadInteger;
case day of
1: Println('Понедельник');
2: Println('Вторник');
3: Println('Среда');
4: Println('Четверг');
5: Println('Пятница');
6,7: Println('Выходной');
else
Println('Нет такого дня');
end;
end.