首页 > 其他分享 >C 语言中布尔值的用法和案例解析

C 语言中布尔值的用法和案例解析

时间:2023-12-23 10:22:54浏览次数:26  
标签:false 布尔值 用法 int bool printf 解析 true

C语言中的布尔值

在编程中,您经常需要一种只能有两个值的数据类型,例如:

  • 是/否
  • 开/关
  • 真/假

为此,C语言有一个 bool 数据类型,称为布尔值。

布尔变量

在C语言中,bool 类型不是内置数据类型,例如 intchar

它是在 C99 中引入的,您必须导入以下头文件才能使用它:

#include <stdbool.h>

布尔变量使用 bool 关键字声明,只能取值 truefalse

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)

但是,通过比较值和变量来返回布尔值更常见。

比较值和变量

比较值在编程中很有用,因为它可以帮助我们找到答案和做出决定。

例如,您可以使用比较运算符,例如大于(>)运算符,来比较两个值:

printf("%d", 10 > 9); // 返回1(true)因为10大于9

从上面的例子可以看出,返回值是布尔值(1)。

您还可以比较两个变量:

int x = 10;
int y = 9;
printf("%d", x > y);

在下面的示例中,我们使用等于(==)运算符比较不同的值:

printf("%d", 10 == 10); // 返回1(true)
printf("%d", 10 == 15); // 返回0(false)
printf("%d", 5 == 55);  // 返回0(false)

您不仅限于只比较数字。您还可以比较布尔变量,甚至特殊的结构,例如数组:

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.");
}

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

标签:false,布尔值,用法,int,bool,printf,解析,true
From: https://www.cnblogs.com/xiaowange/p/17922744.html

相关文章

  • Java之Stream流及方法引用的详细解析二
    2.6Stream流综合练习【应用】案例需求现在有两个ArrayList集合,分别存储6名男演员名称和6名女演员名称,要求完成如下的操作男演员只要名字为3个字的前三人女演员只要姓林的,并且不要第一个把过滤后的男演员姓名和女演员姓名合并到一起把上一步操作后的元素作为构造方法的参数创建演员......
  • Spring源码深度解析_源码构建
    源码构建1.下载下载Spring源码,这里以5.0.2.RELEASE为例,下载地址<https://github.com/spring-projects/spring-framework/archive/v5.0.2.RELEASE.zip>Spring源码中有很多module,在这里做出简单说明:spring-jcl:spring封装的日志框架。spring-core:spring核心依赖,包含Spring框......
  • [C++] static静态成员变量/函数的用法
    作者:丶布布文章预览:一.回顾成员变量二.静态成员概念的引入三.静态成员变量四.静态成员函数一.回顾成员变量普通成员变量的特点:通过类的对象名能够访问类中的public成员变量。每个类对象的成员变量都是专属的,即使是同个类的不同对象之间也不能共享该类的成员变量。这么来看,......
  • [C++从入门到精通] 2.inline内联函数、const的相关用法
    作者:丶布布文章预览:一、返回类型二、内联函数inline三、函数杂合用法总结四、constchar*、charconst*、char*const三者的区别五、函数形参中带const一、返回类型前置类型:在函数声明和定义的时候,把函数返回类型写到函数名字之前的形式,叫前置返回类型voidfunc(inta);//函数......
  • [C++从入门到精通] 3.string类型的相关用法
    作者:丶布布文章预览:一.C++基本变量类型二.String对象的定义和初始化三.String对象的操作一.C++基本变量类型基本类型:int、double等。复合类型:引用、指针、const等。标准库类型:string(可变长字符串的处理)、vector(一种集合或容器的概念)、迭代器。对于字符串,在现实生活中,string......
  • [C++ 从入门到精通] 带你彻了解C++中String类型的用法
    作者:丶布布文章预览:一.C++基本变量类型二.String对象的定义和初始化三.String对象的操作一.C++基本变量类型基本类型:int、double等。复合类型:引用、指针、const等。标准库类型:string(可变长字符串的处理)、vector(一种集合或容器的概念)、迭代器。对于字符串,在现实生活中,string......
  • git 进阶 重难点学习(git checkout和git branch 的区别 git reset 和git revert的用法)g
    git几个分区工作区暂存区本地仓库和远程仓库疑难问题:1.gitpull是到本地仓库还是工作区gitpull命令会将远程仓库的更新内容拉取到本地仓库,并将其合并到当前分支的工作区中。具体来说,gitpull命令首先从远程仓库拉取最新的提交到你的本地仓库,然后将这些变化合并到你当前......
  • SpringBoot系列---【过滤器Filter和拦截器HandlerInterceptor的区别和用法】
    1.作用时机1.1过滤器过滤器(Filter)主要作用在请求到达Servlet或JSP之前,对请求进行预处理,可以对HTTP请求进行过滤、修改。过滤器是基于回调函数实现的,开发人员通过重写doFilter()方法实现过滤逻辑,其主要功能有:权限验证:检查用户是否已经登录或者是否具有相应的权限。数据压......
  • Vue中的$refs 用法
    Vue中的$refs原理涉及到Vue实例的生命周期、虚拟DOM以及一些底层的JavaScript原理。Vue实例的生命周期:当Vue实例被创建时,它会经历一系列的生命周期钩子,包括beforeCreate、created、beforeMount、mounted等。在mounted生命周期钩子中,Vue实例的模板已经渲染到真实的DOM上,此时$refs会......
  • Vue中的$refs 用法
    Vue中的$refs用法Vue中的$refs原理涉及到Vue实例的生命周期、虚拟DOM以及一些底层的JavaScript原理。Vue实例的生命周期:当Vue实例被创建时,它会经历一系列的生命周期钩子,包括beforeCreate、created、beforeMount、mounted等。在mounted生命周期钩子中,Vue实例的模板已经渲染到......