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)
Спробуйте самі »
Однак частіше повертати логічне значення шляхом порівняння значень і змінних.
Порівняння значень і змінних
Порівняння значень є корисним у програмуванні, оскільки воно допомагає нам знаходити відповіді та приймати рішення.
Наприклад, ви можете використовувати оператор порівняння, як-от більше ніж (>
), щоб порівняти два значення:
З наведеного вище прикладу ви можете бачити, що повернуте значення є логічним значенням (1
).
Ви також можете порівняти дві змінні:
У прикладі нижче ми використовуємо оператор дорівнює (==
), щоб порівняти різні значення:
Приклад
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
) в наступному розділі.