深入探讨布尔数据类型

143 阅读7分钟

在编程语言中,我们有各种数据类型来存储不同类型的数据。一些最常用的数据类型是整数、字符串、浮点和布尔值。布尔数据类型是一种仅存储两种类型的值的数据类型,即 True 或 False。这些值不区分大小写,具体取决于编程语言。布尔这个名称来自于数学的布尔代数分支,以数学家乔治·布尔 (George Bool) 的名字命名。

什么是布尔数据类型?

布尔数据类型用于存储逻辑值,即真值或假值。存储逻辑值只需要1个字节的空间。这里,true表示1,false表示0。在布尔数据类型中,“0”以外的任何值都被视为 “true”。布尔值最常用于数据结构中,用于决定程序的控制流和决策语句。在编程语言中,我们有各种数据类型来存储不同类型的数据。一些最常用的数据类型是整数、字符串、浮点和布尔值。布尔数据类型是一种仅存储两种类型的值的数据类型,即 True 或 False。这些值不区分大小写,具体取决于编程语言。布尔这个名称来自于数学的布尔代数分支,以数学家乔治·布尔 (George Bool) 的名字命名。

布尔数据类型声明示例

以下是如何用不同语言(例如 C、C++、Java、Python 和 Javascript )声明布尔数据类型的代码示例。

c++

#include <iostream>
using namespace std;

int main() {

	bool a = true;
	bool b = false;
	bool c = 'yes';
		
	cout<<"a: "<<a<<endl;
	cout<<"b: "<<b<<endl;
	cout<<"c: "<<c<<endl;
	
	return 0;
}

c

#include <stdio.h>
#include <stdbool.h>

int main() {

	bool a = true;
	bool b = false;
	bool c = 5;
	
	printf("a: %d\n", a);
	printf("c: %d\n", b);
	printf("c: %d", c);
	
	return 0;
}

java

import java.io.*;

class GFG {
	public static void main (String[] args) {
		boolean a = true;
		boolean b = false;
		
		System.out.println("a: "+a);
		System.out.println("b: "+b);

	}
}

Python

a = True
b = False

print("a: ",a)
print("b: ",b)

js

let a = true;
let b = false;

console.log(a); // print true
console.log(b); // print false

输出

a: 1
b: 0
c: 1

布尔值和其他数据类型之间的区别

在编程语言中,存在三种类型的数据:布尔型、文本型和数字型。了解它们之间的差异以及它们的一些基础知识非常重要。

  • 布尔值:它们要么为true (1),要么为false (0),并且仅占用 1 个字节的内存空间。而其他数据类型则需要 2 到 8 个字节,具体取决于机器。
  • 数字:数字可以是负数、正数、零或小数。用于存储数字(例如,short、int 和 double)的数据类型可以在内存中占用 2 到 8 个字节的空间。
  • 文本:文本包括字符、字母、数字及其集合。文本可以是字符或字符串类型。1 个字符的大小为 2 个字节。

逻辑和布尔运算符

在编程中,布尔运算符是逻辑运算符(AND、OR 和 NOT),它们是允许您组合或修改条件以进行逻辑计算的符号。它们用于对布尔值true或false执行逻辑运算。它们用于控制程序的流程。

逻辑运算符共有三个:

  1. 逻辑与 ( && ) 运算符
  2. 逻辑或 ( || ) 运算符
  3. 逻辑非 (!) 运算符

1. 逻辑与运算符 ( && )

逻辑AND 运算符 (&&)** **是一个二元运算符,仅当其两个操作数均为true****时才返回 true 。否则,如果操作数之一为 false,则返回 false。AND 运算符的真值表如下:

操作数1操作数2结果
truetruetrue
truefalsefalse
falsetruefalse
falsefalsefalse

逻辑与的语法

expression1    &&    expression2

逻辑与示例

下面是上述方法的实现:

#include <iostream>
using namespace std;

int main()
{
	int age = 25;
	bool isStudent = true;

	if (age > 18 && isStudent) {
		cout << "You are eligible for a student discount."
			<< endl;
	}
	else {
		cout << "You are not eligible for a student "
				"discount."
			<< endl;
	}

		return 0;
	}

输出

You are eligible for a student discount.

说明:在代码中,我们使用 AND 运算符来检查某人是否有资格享受折扣。因此,我们检查该人的年龄是否大于 18 岁并且该人是否是学生。如果一个人的年龄大于 18 岁并且是学生,则条件成立,消息“您有资格享受学生折扣”。将被打印。否则,执行 else 语句。

2. 逻辑或运算符 ( || )

逻辑或运算符 ( || )是一种二元运算符,如果至少一个操作数为 true,则返回 true。仅当两个操作数都为 false 时才会返回 False。这是 OR 运算符的真值表:

操作数1操作数2结果
truetruetrue
truefalsetrue
falsetruetrue
falsefalsefalse

逻辑或的语法

expression1    ||  expression2

逻辑或的示例

下面是上述方法的实现:

#include <iostream>
using namespace std;

int main()
{

	int num = 7;

	if (num <= 0 || num >= 10) {
		cout
			<< "The number is outside the range of 0 to 10."
			<< endl;
	}
	else {
		cout << "The number is between 0 to 10." << endl;
	}

	return 0;
}

输出

The number is between 0 to 10.

说明:代码中,条件 num < 0 || num > 10 检查数字是否小于等于 0 或大于等于 10。如果其中一个条件为真,则显示消息“该数字超出 0 到 10 的范围”。否则将打印 else 语句。

3. 逻辑非运算符 (!)

逻辑非运算符 (!) 是一个一元运算符,用于更改布尔值。如果条件为假,则返回 true;如果条件为 true,则返回 false。这是 NOT 运算符的真值表:

操作数1结果
truefalse
falsetrue

逻辑 NOT 的语法

  !  expression

逻辑非的示例

下面是上述方法的实现:

#include <iostream>
using namespace std;

int main()
{

	bool isLoggedIn = false;

	if (!isLoggedIn) {
		cout << "Please log in to access this feature."
			<< endl;
	}
	else {
		cout << "Welcome to GeeksforGeeks!" << endl;
	}

	return 0;
}

输出

Please log in to access this feature.

说明: 在代码中,条件 '!isLoggedIn' 检查用户是否未登录。如果条件为真(即用户未登录),则显示消息“请登录才能访问此功能”。将显示,否则将打印 else 语句。********

关系运算符和布尔运算符

关系运算符用于确定两个值或表达式之间的关系,并基于此比较,返回一个布尔值(true 或 false)作为结果。

语法:

operand1   relational_operator  operand2
expression1   relational_operator  expression2

关系运算符的类型

我们有六个关系运算符,下面通过示例进行解释。

编号关系运算符意义例子
1> 大于(a > b) 如果 'a' 大于 'b' 则给出true ,否则给出false
2<少于(a < b) 如果 'a' 小于 'b',则返回true,否则返回false。
3>=大于等于(a >= b) 如果 'a' 大于或等于 'b' 则给出true,否则给出false
4<=小于等于(a <= b) 如果 'a' 小于或等于 'b',则返回true,否则返回false。
5==等于(a == b) 如果 'a' 等于 'b' 则给出true,否则给出false
6!=不等于( a != b) 如果 'a' 不等于 'b' 则给出true,否则给出false

关系运算符和布尔运算符的示例

在下面的代码中,我们定义了两个具有整数值的变量,并通过使用关系运算符比较它们来打印布尔输出。在输出中,我们得到 1、0、0、0 和 1,其中0 表示 false1 表示 true。

#include <iostream>
using namespace std;

int main()
{
	int a = 10;
	int b = 6;

	cout << "a > b = " << (a > b) << endl;
	cout << "a < b = " << (a < b) << endl;
	cout << "a == b = " << (a == b) << endl;
	cout << "a != b = " << (a != b) << endl;

	return 0;
}

输出

a > b = 1
a < b = 0
a==b=0
a!=b=1

总结

布尔数据类型具有 true 和 false 两个基本值,是编程中逻辑运算和决策的核心。它的简单性和多功能性使其成为跨各种编程语言和范例的开发人员不可或缺的工具。通过了解如何使用布尔数据类型及其关联的逻辑运算符,程序员可以创建更高效​​、更可靠、更强大的应用程序,这些应用程序可以智能地响应不同的情况和用户输入。