НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ
Мова програмування C. Уроки W3Schools для початківців українською мовою

En Es De

C Булеві (логічні)


Булеві (логічні) змінні

Дуже часто під час програмування вам знадобиться тип даних, який може мати лише одне з двох значень, наприклад:

  • YES / NO
  • ON / OFF
  • TRUE / FALSE

Для цього мова C має тип даних bool, який відомий як булеві.

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


Булеві змінні

У мові C тип bool не є вбудованим типом даних, наприклад int або char.

Він був представлений у C99, і ви повинні імпортувати наступний файл заголовка, щоб використовувати його:

#include <stdbool.h>

Логічна змінна оголошується за допомогою ключового слова bool і може приймати лише значення true або false:

bool isProgrammingFun = true;
bool isFishTasty = false;

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

  • 1 (або будь-яке інше число, яке не є 0). true
  • 0 представляє false

Тому ви повинні використовувати специфікатор формату %d, щоб надрукувати логічне значення:

Приклад

// Створити логічні змінні
bool isProgrammingFun = true;
bool isFishTasty = false;

// Повернути логічні значення
printf("%d", isProgrammingFun);   // Поверне 1 (true)
printf("%d", isFishTasty);        // Поверне 0 (false)
Спробуйте самі »

Однак частіше повертати логічне значення шляхом порівняння значень і змінних.


Порівняння значень і змінних

Порівняння значень є корисним у програмуванні, оскільки воно допомагає нам знаходити відповіді та приймати рішення.

Наприклад, ви можете використовувати оператор порівняння, як-от більше ніж (>), щоб порівняти два значення:

Приклад

printf("%d", 10 > 9);  // Поверне 1 (true) тому що 10 більше ніж 9
Спробуйте самі »

З наведеного вище прикладу ви можете бачити, що повернуте значення є логічним значенням (1).

Ви також можете порівняти дві змінні:

Приклад

int x = 10;
int y = 9;
printf("%d", x > y);
Спробуйте самі »

У прикладі нижче ми використовуємо оператор дорівнює (==), щоб порівняти різні значення:

Приклад

printf("%d", 10 == 10); // Поверне 1 (true), тому що 10 дорівнює 10
printf("%d", 10 == 15); // Поверне 0 (false), тому що 10 не дорівнює 15
printf("%d", 5 == 55);  // Поверне 0 (false) тому що 5 не дорівнює 55
Спробуйте самі »

Ви не обмежені лише порівнянням чисел. Ви також можете порівнювати логічні змінні або навіть спеціальні структури, як-от масиви (про які ви дізнаєтеся більше в наступному розділі):

Приклад

bool isHamburgerTasty = true;
bool isPizzaTasty = true;

// Дізнайтеся, чи смачні і гамбургер, і піца
printf("%d", isHamburgerTasty == isPizzaTasty);
Спробуйте самі »

Не забувайте включити файл заголовка <stdbool.h> під час роботи зі змінними bool.


Приклад із реального життя

Давайте подумаємо про "реальний приклад із життя", коли нам потрібно з’ясувати, чи людина достатньо доросла, щоб голосувати.

У прикладі нижче ми використовуємо оператор порівняння >=, щоб дізнатися, чи вік (25) є більше ніж АБО дорівнює віковому обмеженню для голосування, яке встановлено на 18:

Приклад

int myAge = 25;
int votingAge = 18;

printf("%d", myAge >= votingAge); // Поверне 1 (true), тобто 25-річним дозволено голосувати!
Спробуйте самі »

Круто, правда? Ще кращим підходом (оскільки ми зараз працюємо) було б загорнути код вище в інструкцію if...else, щоб ми могли виконувати різні дії в залежності від результату:

Приклад

Вихідні дані "Достатньо років, щоб голосувати!" якщо myAge більше або дорівнює 18. В іншому випадку виведіть "Недостатньо віку, щоб голосувати":

int myAge = 25;
int votingAge = 18;

if (myAge >= votingAge) {
  printf("Достатній вік, щоб голосувати!");
} else {
  printf("Недостатній вік, щоб голосувати.");
}
Спробуйте самі »

Логічні значення є основою для всіх порівнянь і умов.

Ви дізнаєтеся більше про умови (if...else) в наступному розділі.