C语言中的布尔值
在编程中,您经常需要一种只能有两个值的数据类型,例如:
- 是/否
- 开/关
- 真/假
为此,C语言有一个 bool
数据类型,称为布尔值。
布尔变量
在C语言中,bool
类型不是内置数据类型,例如 int
或 char
它是在 C99
中引入的,您必须导入以下头文件才能使用它:
#include <stdbool.h>
布尔变量使用 bool
关键字声明,只能取值 true
或 false
:
bool isProgrammingFun = true;
bool isFishTasty = false;
在尝试打印布尔变量之前,您应该知道布尔值作为整数返回:
- 1(或非0的任何其他数字)表示true
- 0表示false
因此,您必须使用 %d
格式说明符来打印布尔值:
// 创建布尔变量
bool isProgrammingFun = true;
bool isFishTasty = false;
// 返回布尔值
printf("%d", isProgrammingFun); // 返回1(true)
printf("%d", isFishTasty); // 返回0(false)
但是,通过比较值和变量来返回布尔值更常见。
比较值和变量
比较值在编程中很有用,因为它可以帮助我们找到答案和做出决定。
例如,您可以使用比较运算符,例如大于(>)运算符,来比较两个值:
代码语言:c复制printf("%d", 10 > 9); // 返回1(true)因为10大于9
从上面的例子可以看出,返回值是布尔值(1)。
您还可以比较两个变量:
代码语言:c复制int x = 10;
int y = 9;
printf("%d", x > y);
在下面的示例中,我们使用等于(==)运算符比较不同的值:
代码语言:c复制printf("%d", 10 == 10); // 返回1(true)
printf("%d", 10 == 15); // 返回0(false)
printf("%d", 5 == 55); // 返回0(false)
您不仅限于只比较数字。您还可以比较布尔变量,甚至特殊的结构,例如数组:
代码语言:c复制bool isHamburgerTasty = true;
bool isPizzaTasty = true;
// 找出汉堡和披萨是否都好吃
printf("%d", isHamburgerTasty == isPizzaTasty);
记住,在使用 bool
变量时要包含 <stdbool.h>
头文件。
真实案例
让我们想一个“现实生活中的例子”,我们需要找出一个人是否有资格投票。
在下面的示例中,我们使用 >=
比较运算符来找出年龄(25)是否大于或等于投票年龄限制,该限制设置为18:
int myAge = 25;
int votingAge = 18;
printf("%d", myAge >= votingAge); // 返回1(true)
很酷,对吧?一个更好的方法(既然我们已经开始讨论了),是将上面的代码包装在一个 if...else
语句中,以便我们可以根据结果执行不同的操作:
// 如果myAge大于或等于18,则输出"Old enough to vote!"。否则输出"Not old enough to vote.":
int myAge = 25;
int votingAge = 18;
if (myAge >= votingAge) {
printf("Old enough to vote!");
} else {
printf("Not old enough to vote.");
}
最后
为了方便其他设备和平台的小伙伴观看往期文章:
看完如果觉得有帮助,欢迎 点赞、收藏、关注