Cplusplus 简明教程

C++ Boolean (bool) Data Type

C 中的 bool data type 表示布尔值,布尔值有 TrueFalse 两种情况。在 C 中, 1 表示 True ,而 0 表示 False 。关键字“ bool ”用于声明布尔数据类型。 bool data type 是 C++ 语言的较新特性之一。

Use of Boolean Data Type

布尔(bool)数据类型有以下几种用途:

  1. 当我们需要使用二进制值(即表示变量两种状态的值)的时候。

  2. 当我们需要根据某些条件来运行循环时,我们使用 bool 数据类型。

  3. 在存在空值时,我们通常将它们与 bool 数据类型联系起来。

  4. 为了比较两个值的相等性或不等性,我们通常使用 bool 数据类型。

Values of Boolean (bool) Data Type

C++ 中的 bool 数据类型可以有两种值,这些值如下所示:

  1. True or 1

  2. False or 0

正如前面提到的,在 C++ 编译中,布尔值 1 表示真,而布尔值 0 表示假。

Creating a Boolean Variable

我们可以使用“bool”关键字后跟变量名来声明布尔变量。

Syntax

使用以下语法来创建一个布尔类型变量:

bool variable_name = [value];

这里,[value] 是可选的,可在声明期间用于赋值。

Example

在以下示例中,我们声明了一个布尔变量,并为其分配了一个值。

// C++ program to demonstrate
// bool data type
#include <iostream>
using namespace std;

// Driver code
int main() {
   bool flag;
   flag=1;//this is true
   cout<<flag;
   return 0;
}

Example of bool Data Type

以下示例演示了布尔(bool)数据类型的用法:

// C++ program to demonstrate
// bool data type
#include <iostream>
using namespace std;

int main(){
   bool flag;
   flag=1;//this is true
   bool flag1=true;

   cout<<flag<<" "<<flag1<<endl;

   int count=0;
   while(flag){
      //condition where flag is true
      count++;
      if(count>=3) flag=false;
   }

   cout<<count<<" "<<flag<<endl;

   if(flag1) cout<<"True flag1"<<endl;
      else cout<<"False flag1"<<endl;

   return 0;
}

Output

1 1
3 0
True flag1

Implicit Conversion of Bool Variables

布尔数据类型可以隐式转换为数值数据类型,反之亦然。这是可能的,因为任何大于 0 的值都有布尔真值,而任何小于或等于 0 的值都有布尔假值。

此外,布尔值可以使用隐式转换技术以整数值的形式添加到整数变量中。因此,当我们将布尔值添加到一个整数值中时,如果该值为真,则该整数值会增加 1,否则仍与虚假值对应于 0。

Example

这在以下给出的示例中得到了明确解释:

// C++ program to demonstrate
// bool data type
#include <iostream>
using namespace std;

int main() {
   bool flag;
   flag=1;//this is true
   bool flag1=true;

   cout<<flag<<" "<<flag1<<endl;

   int count=0;
   int x=12;
   float y=35.45;
   bool k=count, k1=x, k2=y;
   int sum=x+flag+flag1;

   cout<<k<<" "<<count<<" "<<k1<<" "<<x<<" "<<k2<<" "<<y<<" "<<endl;
   cout<<”After adding Boolean and integer values : ”<< sum<<endl;
   return 0;
}