深入探讨布尔数据类型

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

什么是布尔数据类型?

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

布尔数据类型声明示例

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

c++

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

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

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

Python 复制代码
a = True
b = False

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

js

js 复制代码
let a = true;
let b = false;

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

输出

Python 复制代码
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 结果
true true true
true false false
false true false
false false false

逻辑与的语法

c++ 复制代码
expression1    &&    expression2

逻辑与示例

下面是上述方法的实现:

c++ 复制代码
#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;
	}

输出

c++ 复制代码
You are eligible for a student discount.

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

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

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

操作数1 操作数2 结果
true true true
true false true
false true true
false false false

逻辑或的语法

c++ 复制代码
expression1    ||  expression2

逻辑或的示例

下面是上述方法的实现:

c++ 复制代码
#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;
}

输出

c++ 复制代码
The number is between 0 to 10.

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

3. 逻辑非运算符 (!)

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

操作数1 结果
true false
false true

逻辑 NOT 的语法

c++ 复制代码
  !  expression

逻辑非的示例

下面是上述方法的实现:

c++ 复制代码
#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;
}

输出

c++ 复制代码
Please log in to access this feature.

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

关系运算符和布尔运算符

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

语法:

c++ 复制代码
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。

c++ 复制代码
#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;
}

输出

c++ 复制代码
a > b = 1
a < b = 0
a==b=0
a!=b=1

总结

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

相关推荐
智慧老师6 分钟前
Spring基础分析13-Spring Security框架
java·后端·spring
搬码后生仔1 小时前
asp.net core webapi项目中 在生产环境中 进不去swagger
chrome·后端·asp.net
凡人的AI工具箱1 小时前
每天40分玩转Django:Django国际化
数据库·人工智能·后端·python·django·sqlite
Lx3522 小时前
Pandas数据重命名:列名与索引为标题
后端·python·pandas
小池先生2 小时前
springboot启动不了 因一个spring-boot-starter-web底下的tomcat-embed-core依赖丢失
java·spring boot·后端
百罹鸟3 小时前
【vue高频面试题—场景篇】:实现一个实时更新的倒计时组件,如何确保倒计时在页面切换时能够正常暂停和恢复?
vue.js·后端·面试
小蜗牛慢慢爬行3 小时前
如何在 Spring Boot 微服务中设置和管理多个数据库
java·数据库·spring boot·后端·微服务·架构·hibernate
wm10434 小时前
java web springboot
java·spring boot·后端
龙少95436 小时前
【深入理解@EnableCaching】
java·后端·spring
溟洵8 小时前
Linux下学【MySQL】表中插入和查询的进阶操作(配实操图和SQL语句通俗易懂)
linux·运维·数据库·后端·sql·mysql