Оператор if then дозволяє виконувати умовне розгалуження ходу програми на основі результату деякої логічної операції.
Приклад використання оператора:
if a > b then
write('a > b');
{якщо перекласти код на українську, то виходить
якщо a > b тоді
вивести('a > b');
}
Процедура write виконається тільки у випадку, якщо змінна a більша b.
Конструкцію можна доповнити словом else(інакше).
if a > b then
write('a > b')
else
write('a < b');
{якщо перекласти код на українську, то виходить
якщо a > b тоді
вивести('a > b')
інакше
вивести('a < b')
}
Перед ключовим словом else крапка з комою не вказується.
Напишемо програму на мові Pascal для порівняння двох цілих чисел. Будемо використовувати повне розгалуження.
{$CODEPAGE UTF8}
program CompareNums;
var
numOne, numTwo : integer;
begin
write('Введіть перше число ');
readln(numOne);
write('Введіть друге число ');
readln(numTwo);
if numOne = numTwo then
writeln(numOne, ' = ', numTwo)
else
if numOne < numTwo then
writeln(numOne, ' < ', numTwo)
else
writeln(numOne, ' > ', numTwo);
writeln('Для виходу з програми натисніть клавішу Enter');
readln;
end.
З прикладу ми бачимо, що конструкції розгалуження можна комбінувати, створюючи вкладення.
В тілі if then може міститися тільки один оператор, однак, якщо потрібно виконати декілька операцій, то можна використати операторні дужки - begin end;
Якщо потрібно виконати декілька умов, можна використовувати умовні вирази.
Програма на Паскаль в IDE Lazarus, яка пробує вгадати, чим займається користувач в залежності від його віку.
{$CODEPAGE UTF8}
program CheckUserAge;
var
age : integer;
begin
write('Скільки вам років ');
readln(age);
if age < 1 then
writeln('Значення не може бути менше 4')
else
begin
write('Скорше за все ви ');
if age < 6 then
writeln(' навчаєтесь в садочку');
if (age >= 6) and (age < 18) then
writeln(' вчитесь в школі');
if (age >=18) and (age <= 21) then
writeln(' навчаєтесь у вузі');
if age > 21 then
writeln(' працюєте');
end;
writeln('Для виходу з програми натисніть клавішу Enter');
readln;
end.