Menu
Coddy logo textTech

Логический тип

Часть раздела Fundamentals путешествия по C на Coddy — урок 9 из 63.

В языке C нет встроенного логического типа данных, как в других языках. Вместо этого C использует целые числа для представления логических значений.

Определите целое число для представления логического значения:

int isTrue = 1;  // Представляет true
int isFalse = 0; // Представляет false

В языке C любое ненулевое значение считается «истинным» (true), в то время как ноль считается «ложным» (false). 

Используйте эти логические значения в условиях:

int age = 25;
int isAdult = (age > 17);

printf("Is adult? %d\n", isAdult);
Output:
Is adult? 1

Вы также можете использовать оператор >= (больше или равно) в условиях. Например, age >= 18 равно true, если age равно 18 или больше, и false в противном случае:

int age = 18;
int isAdult = (age >= 18);

printf("Is adult? %d\n", isAdult);
Вывод:
Is adult? 1

Начиная с C99, вы можете подключить заголовочный файл <stdbool.h> для использования логического типа:

#include <stdbool.h>

bool isTrue = true;   // Теперь используется настоящий логический тип
bool isFalse = false; // Использование предопределенных констант

Но вы узнаете больше об использовании булевых значений позже в ходе вашего обучения

challenge icon

Задание

Легко

Установите значение переменной age равным 16. Затем создайте программу, которая проверяет, достаточно ли человек взрослый, чтобы водить машину (возраст 18 лет или старше).
Сохраните результат (либо 0 для false, либо 1 для true) в переменной canDrive и выведите на экран возраст и результат.

Шпаргалка

C использует целые числа для представления логических (булевых) значений:

int isTrue = 1;  // Представляет true
int isFalse = 0; // Представляет false

Любое ненулевое значение считается «истинным» (true), в то время как ноль считается «ложным» (false).

Используйте логические значения в условиях:

int age = 25;
int isAdult = (age > 17);

printf("Is adult? %d\n", isAdult);

Общие операторы сравнения, используемые с логическими значениями:

a > b   // больше чем
a >= b  // больше или равно
a < b   // меньше чем
a <= b  // меньше или равно
a == b  // равно
a != b  // не равно

Для C99 и более поздних версий включите <stdbool.h> для использования настоящего логического типа:

#include <stdbool.h>

bool isTrue = true;
bool isFalse = false;

Попробуйте сами

#include <stdio.h>

int main() {
    // Ваш код здесь:
    int age = ;

    // Ваш код здесь:
    int canDrive = ;

    printf("Age: %d\n", age);
    printf("Can drive? %d\n", canDrive);

    return 0;
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Fundamentals