Вище ми розглядали використання умовного оператору IF з простою умовою, тобто сама умова складалась з одного порівняння. Але частою є необхідність перевіряти більш складні умови. Постає питання: як їх записати?
Принцип запису складених умов схожий до запису виразів “з дужками” тільки сам вираз має бути логічного (булевського) типу. Дужки визначають пріоритет виконання порівнянь.
Якщо умова є складеною (тобто здійснюється кілька порівнянь одночасно), то краще її всю взяти у дужки. Для одночасного виконання двох умов між ними ставиться “and”, для виконання однієї з двох умов між ними ставиться “or”
Операція and
Як вже зазначалось вище, операція and використовується, коли перевіряється одночасне виконання двох або більше умов.
Наприклад якщо нам необхідно перевірити справедливість виразу a<b<c, то саме порівняння матиме вигляд
іf (a<b) and (b<c) then ...
і вираз (a<b) and (b<c) матиме логічний тип причому прийматиме значення true якщо і (a<b), і (b<c) прийматимуть значення true одночасно. Якщо ж хоч одне зі значень буде false, то і сам вираз матиме значення false.
Сам вираз a<b and b<c (тобто без дужок) не є логічним і програма видасть повідомлення про помилку.
Операція or
Операція “or” використовується для перевірки виконання хоча б однієї з умов.
Наприклад якщо нам необхідно перевірити справедливість виразу “a є дійсним числом і a не може бути у межах (0,1)”, то порівняння матиме вигляд
іf (a<0) or (a>1) then ...
і означає, що якщо виконується хоч одна з елементарних умов, то і вся умова виконується
Операція заперечення not.
Операція “not” використовується для зміни значення логічної змінної на протилежне.
Наприклад, якщо нам потрібно перевірити умову, що змінна a є додатньою, та парною, то умова матиме вигляд
if (a>0) and ( not odd(a) ) then …
Операція xor
Операція “хor” використовується для перевірки виконання виключно однієї з умов. Наприклад
if (a<2) xor (b>3)
прийматиме значення TRUEякщо, наприклад
a=1, b=2; a=3,b=4 – тобто тільки одна з умов задовольняється;
і прийматиме значення FALSE якщо, наприклад
a=1,b=4; a=3,b=2 – тобто коли або обидві умови виконуються, або обидві не виконуються.
Іноді xor та or співпадають.
Наприклад умова
іf (a<0) хor (a>1) та іf (a<0) or (a>1) співпадають.