Логический тип в C++
В языке С++ для логических значений существует специальный тип — bool.
Допустимыми значениями этого типа являются только true и false, при этом других значений у переменной данного типа быть не может.
Переменная типа bool занимает в памяти ровно 1 байт.
bool b;
cout << sizeof(b); //выведет 1
Допустимые операции
С логическими переменными можно осуществлять логические операции:
~x — логическое отрицание (НЕ)
x & y — логическое умножение (И)
x | y — логические сложение (ИЛИ)
Для типа bool стираются различия между операторами && и & , а также между || и | .
Совместимость с типом int
Тип bool совместим с типом int по присваиванию в обе стороны.
При этом true переходит в 1, false — в 0.
При обратном приведении любое число, не равное нулю — переходит в true, 0 — в false.
Если использовать bool в арифметическом выражении, то оно будет переведено в int: bool + bool = int.
Надо понимать, что в С++ логический и целочисленный тип — это разные типы , поэтому по типу аргумента int и bool возможна перегрузка функций.
bool (справочник по C#)
Ключевое слово типа bool — это псевдоним для типа структуры System.Boolean .NET, представляющий логическое значение: true или false .
Для выполнения логических операций со значениями типа bool используйте логические операторы. Тип bool является типом результата операторов сравнения и равенства. Выражение bool может быть управляющим условным выражением в операторах if, do, while и for и условном операторе ?: .
Значение по умолчанию для типа bool — false .
Литералы
Вы можете использовать литералы true и false для инициализации переменной bool или передачи значения bool :
bool check = true; Console.WriteLine(check ? "Checked" : "Not checked"); // output: Checked Console.WriteLine(false ? "Checked" : "Not checked"); // output: Not checked
Трехзначная булева логика
Используйте тип bool? , допускающий значение NULL, если нужно использовать трехзначную логику, например, при работе с базами данных, которые поддерживают трехзначный логический тип. Для операндов bool? предопределенные операторы & и | поддерживают троичную логику. См. подробнее о логических операторах, поддерживающих значение NULL в описании логических операторов.
Преобразования
В C# доступно только два преобразования, использующих тип bool . Это неявное преобразование в соответствующий тип bool? , допускающий значение NULL, и явное преобразование из типа bool? . Однако .NET предоставляет дополнительные методы, позволяющие выполнять преобразование в тип bool или из него. Дополнительные сведения см. в разделе о преобразовании в логические значения и из них справочника по API System.Boolean.
Спецификация языка C#
Дополнительные сведения см. в разделе Тип boolспецификации языка C#.
См. также раздел
- справочник по C#
- Типы значений
- Операторы true и false
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
bool (C++)
Это ключевое слово является встроенным типом. Переменная этого типа может иметь значения true и false . Условные выражения имеют тип bool и поэтому имеют значения типа bool . Например, i != 0 теперь имеет true или false зависит от значения i .
Visual Studio 2017 версии 15.3 и более поздних версий (доступно с /std:c++17 и более поздних версий): операнд оператора postfix или префикса инкремента или декремента может не быть типа bool . Другими словами, при наличии переменной b типа bool эти выражения больше не допускаются:
b++; ++b; b--; --b;
Значения true и false имеют следующие связи:
!false == true !true == false
В следующем операторе
if (condexpr1) statement1;
Если condexpr1 значение true равно, statement1 всегда выполняется; если condexpr1 оно false равно, statement1 никогда не выполняется.
Если оператор postfix или префикса ++ применяется к переменной типа bool , переменная имеет значение true .
Visual Studio 2017 версии 15.3 и более поздних версий: operator++ для bool него удалено из языка и больше не поддерживается.
Оператор postfix или префикса — нельзя применить к переменной этого типа.
Тип bool участвует в целых акциях по умолчанию. R-значение типа bool можно преобразовать в r-значение типа int , став false нулевым и true став одним. В качестве отдельного типа bool участвует в разрешении перегрузки.
bool тип данных в языке Си.
В языке Си нет типа данных bool и значений true и false.
В заголовочном файле определены макросы bool, true и false, которые позволяют использовать синтаксис аналогичный языку C++.
#include // prinf() #include // bool, true, false int main() < int counter = 0; bool flag = true; while(flag)< if(counter == 5)< flag = false; >printf("counter = %d, flag = %d \n", counter, flag); counter++; > return 0; >
Значение true = 1, а false = 0. Оператор if выполняется при любом ненулевом значении в скобках оператора.
#include // printf() #include // true, false int main() < printf("true = %d, false = %d \n", true, false); // true = 1, false = 0 if(-1)< // Будет выведено "only 0 == false" printf("only 0 == false \n"); // Любое ненулевое значение это true (срабатывание if) >>
Понравилась страница?
Добавить в закладки
Или поделиться!