На головну

Оператор if-else

Коли виконання основної гілки програми доходить до умовного оператора if-else, то в залежності від результату логічного виразу в його заголовку виконуються різні блоки коду. Якщо логічний вираз повернуло true, то виконується один блок (в Паскалі починається зі слова then), якщо false - то інший (починається зі слова else). Після виконання одного з вкладених блоків коду, хід програми повертається в основну гілку. Інший вкладений блок не виконується. Наприклад, програма повинна визначати, ввів користувач парне або непарне число, і виводити на екран повідомлення. Тоді програмний код на мові Pascal може бути таким:

var n: integer;

begin

write ( 'Введіть ціле число:');

readln (n);

if n mod 2 = 0 then

write ( 'Воно парне.')

else

write ( 'Воно непарне.');

readln

end.

Бувають неповні форми умовних операторів. В такому випадку вкладений в if блок коду виконується тільки в випадку true логічному вираженні заголовка. У разі false виконання програми відразу передається в основний блок. Зрозуміло, що гілка else в такому випадку відсутня.

У прикладі нижче, якщо змінна має значення менше нуля, то її значення змінюється (знаходиться модуль числа). Якщо ж значення змінної спочатку більше нуля, то блок коду при операторі if взагалі не виконується, тому що не дотримано умову (n <0).

var n: integer;

begin

write ( 'Введіть ціле число:');

readln (n);

if n <0 then

n: = abs (n);

write (n);

readln

end.

Як умова може стояти будь-який вираз, результатом обчислення якого є одне з булевих значень - true або false.

Безпосередньо після then може стояти тільки один оператор. При необхідності виконання декількох операторів вони повинні бути укладені в операторні дужки begin-end. Приклад програми, яка змінює значення змінних місцями, тільки якщо ці значення різні. Блок if містить чотири вирази, тому укладений в begin-end.

var

a, b, c: integer;

begin

write ( 'a =');

readln (a);

write ( 'b =');

readln (b);

if a <> b then begin

c: = a;

a: = b;

b: = c;

writeln ( 'a =', a, '; b =', b);

end

else

writeln ( 'Введено однакові числа');

readln;

end.

Припустимо вкладення одного оператора if (або if-else) в інший. При цьому слід дотримуватися обережності, тобто буває важко визначити якому if (зовнішньому чи внутрішньому) належить гілка else. Рекомендують використовувати вкладену конструкцію if, тільки в гілці else. До того ж в мові Паскаль діє наступне правило: кожному then відповідає найближчим else, не задіяне при встановленні відповідності з іншим then. Глибина вкладеності операторів if може бути як завгодно великий, але розібратися в такому коді буде дуже складно.



 Procedure ім'я (параметри); |  Оператор case (оператор вибору)

 Типи даних в мові Паскаль (загальна характеристика). |  Масиви. |  Змінні. Визначення і запис. |  Цілі типи даних. |  Речові типи даних |  Файли. Введення-виведення даних за допомогою текстових файлів. |  Логічний тип даних. |  Логічні вирази та операції. |  Тема програми |  Процедури і функції. |

© um.co.ua - учбові матеріали та реферати