在编程中,您经常需要一种只能具有两个值之一的数据类型,例如:
为此,C 有一个bool
数据类型,称为布尔值。
布尔值代表的值是true
或者false
。
在C中,bool
type 不是内置数据类型,例如int
或者char
。
它是在 C99 中引入的,你必须Import下面的头文件来使用它:
#include <stdbool.h>
布尔变量声明为bool
关键字,只能取值true
或者false
:
bool isProgrammingFun = true;
bool isFishTasty = false;
在尝试打印布尔变量之前,您应该知道布尔值以整数形式返回:
1
(或任何其他非 0 的数字)代表true
0
代表false
因此,您必须使用%d
用于打印布尔值的格式说明符:
// Create boolean variables
bool isProgrammingFun = true;
bool isFishTasty = false;
// Return boolean values
printf("%d", isProgrammingFun); // Returns 1 (true)
printf("%d", isFishTasty); // Returns 0 (false)
亲自试一试 »
然而,更常见的是通过以下方式返回布尔值比较值和变量。
比较值在编程中很有用,因为它可以帮助我们找到答案并做出决策。
例如,您可以使用比较运算符, 如那个大于(>
) 运算符,用于比较两个值:
从上面的例子中,你可以看到返回值是一个布尔值(1
)。
您还可以比较两个变量:
在下面的示例中,我们使用等于(==
) 运算符来比较不同的值:
printf("%d", 10 == 10); // Returns 1 (true), because 10 is equal to 10
printf("%d", 10 == 15); // Returns 0 (false), because 10 is not equal to 15
printf("%d", 5 == 55); // Returns 0 (false) because 5 is not equal to 55
亲自试一试 »
您不仅限于比较数字。您还可以比较布尔变量,甚至特殊结构,例如数组(您将在后面的章节中了解更多):
bool isHamburgerTasty = true;
bool isPizzaTasty = true;
// Find out if both hamburger and pizza is tasty
printf("%d", isHamburgerTasty == isPizzaTasty);
亲自试一试 »
请记住包括<stdbool.h>
使用时的头文件bool
变量。
让我们考虑一个"real life example",我们需要查明一个人是否达到投票年龄。
在下面的示例中,我们使用>=
比较运算符来确定年龄是否 (25
) 是大于或者等于投票年龄限制,设置为18
:
int myAge = 25;
int votingAge = 18;
printf("%d", myAge >= votingAge); // Returns 1 (true), meaning 25 year olds are allowed to vote!
亲自试一试 »
很酷,对吧?更好的方法(因为我们现在正在努力)是将上面的代码包装在一个if...else
语句,因此我们可以根据结果执行不同的操作:
输出#"Old enough to vote!"如果myAge
是大于或等于18
。否则输出"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.");
}
亲自试一试 »
布尔值是所有比较和条件的基础。
您将了解更多有关状况 (if...else
)在下一章中。
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!