Порівняння значень та логічні оператори в C

Оператори порівнянь

Оператори порівнянь використовуються для порівняння двох значень (або ж змінних). Це дуже важлива можливість мов програмування, так як вона дозволяє нам знаходити відповіді на питання та приймати рішення на їх основі.

Результатом виразів з порівнянням є або 1 (що значить "істина"), або 0 (значить "хибність"). Всю цінність цих операцій ми побачимо в наступному уроці, в якому розглянемо тему розгалудження потоку виконання програм, а поки що просто постарайтесь запам'ятати матеріал цієї статті.

Часто при написанні програм нам необхідно знати чи досягла змінна певного значення, чи більше значення однієї змінної за інше тощо. Розглянемо приклад, в якому оператором БІЛЬШЕ НІЖ порівнюються декілька змінних:

int a = 18;
int b = 6;
int c = 20;
printf("%d \n", a > b);   // виведе 1 (ІСТИНА), так як a дійсно більше ніж b
printf("%d", a > c);   // виведе 0 (ХИБНІСТЬ), так як a не більше за b

Повний список операторів порівнянь:

Оператор Назва Приклад застосування Опис
== Дорівнює a == b Дає результат 1 якщо значення рівні, інакше 0
!= Не дорівнює a != b Дає результат 1 якщо значення НЕ рівні, інакше 0
> Більше ніж a > b Результат 1 якщо перше значення БІЛЬШЕ ніж друге
< Менше ніж a < b Результат 1 якщо перше значення МЕНШЕ ніж друге
>= Більше або дорівнює a >= b Результат 1 якщо перше більше або рівне другому
<= Менше або дорівнює a <= b Результат 1 якщо перше менше або рівне другому

Примітка: порівнювати, звісно можна не тільки змінні а і значення напряму:

int result1 = a > 3;
int result2 = 45 < 16;

Логічні оператори

Як і оператори порівняння, логічні оператори також дозволяють перевіряти, чи є значення істинними (true) або хибними (false).

Логічні оператори використовуються для визначення логічного зв'язку між змінними або значеннями, поєднуючи кілька умов.

Оператор Назва операції Приклад Опис
&& І a > 3 && a < 10 Дає результат 1 якщо значення змінної a більше 3 і менше 10
|| АБО a == 2 || b > 6 Результат 1 якщо a дорівнює 2 або b більше 6, інакше результат 0
! НЕ !a Обертає логічне значення - дає 1 якщо a дорівнює 0, дає 0 якщо a = 1
 

 

Наведений нижче приклад демонструє, як логічні оператори можна використовувати в реальній ситуації, наприклад, для перевірки, чи увійшов користувач у систему та які він має права доступу:
int isLoggedIn = 1;
int isAdmin = 0;

printf("Звичайний користувач: %d\n", isLoggedIn && !isAdmin);
printf("Має доступ: %d\n", isLoggedIn || isAdmin);
printf("Не увійшов у систему: %d\n", !isLoggedIn);

Результат:

Звичайний користувач: 1
Має доступ: 1
Не увійшов у систему: 0

Запам'ятайте: у мові C значення 1 означає істину (true), а 0хибність (false). Логічні оператори стають значно зрозумілішими, коли починаєш використовувати їх в операторах if, з якими ви познайомитеся в наступному розділі.


Ця стаття з циклу статей Уроки програмування на мові C.

Наступний урок: Умовні конструкції if...else у мові C

 

Декорація