C语言入门_Day7 逻辑运算

目录

前言

1.逻辑运算

2.优先级

3.易错点

4.思维导图


前言

 算术运算用来进行数据的计算和处理;比较运算是用来比较不同的数据,进而来决定下一步怎么做;除此以外还有一种运算叫做逻辑运算,它的应用场景也是用来影响下一步代码的执行方式。

1.逻辑运算

逻辑运算主要是指三种运算方式,且运算(and),在C语言中是&&;或运算(or),在C语言中是||;非运算(not),在C语言中是

这里的&&就是与运算,又叫且运算||就是或运算,!就是非运算,接下来我们来一个一个一个认识他们:

true&&false;
true||false;
!true;

1.且运算&&

2.或运算||

3.非运算

且运算

&&是又叫“与运算”或者“且运算”,假设你是一个28岁的女生,那么“你28岁”并且“你是女生”,这句话表述就是真的。但是“你28岁”并且“你是男生”,这句表述就是假的。

且运算的运算方式就是,两个都为真才是真,其余情况都是假,所以true && true为真true && false为假。

我们定义两个变量bo_1和bo_2,并分别赋值true和true,然后进行且运算,并打印输出运算的结果。先填写数据类型bool:

bool bo_1=true;
bool bo_2=true;
printf("%d\n",bo_1 && bo_2);

打印结果

1

&&符号是两个&,也就是键盘上数字7上面的符号,输出这个符号是shift+7😁。

关于且运算,我们需要记住运算符是&&,以及运算规则,“都为真才是真

或运算

||运算又叫或运算,假设你是一个28岁的女生,那么“你28岁”或者“你是男生”,虽然前一句是真,后一句是假,但整个表述也为真,因为这里是“或者”,所以只要有一个条件是真的,整句话都是真的。

这时候只有“你不是28岁”或者“你是男生”,这句表述是假。因为前一句和后一句都是假的,整句话也就是假的了。

“或”运算只要参与运算的其中一个条件为真,就为真。除非两个条件都为假,才是假。

或运算符号||是两个连续的|,也就是反斜杠上面的符号,输出这个符号是shift+反斜杠健\😁

例如

bool bo_1=true;
bool bo_2=false;
printf("%d\n",bo_1||bo_2);

打印结果

1

 非运算的运算符号是一个英文感叹号!,假设你28岁,那么“你不是28岁”就是个假的表述,“你不是10岁”就是个真的表述。非运算里面,非真的结果为假,非假的结果为真。

 例如:

bool bo_1=true;
printf("%d\n",! bo_1);

打印结果

0

关于逻辑运算,我们只需要记住一个口诀

且运算&&的运算规律是,真真为真,其余为假

或运算||是,假假为假,其余为真

非运算!是,非真为假,非假为真

实际应用中经常把比较运算和逻辑运算联合在一起使用,比如我们要判断一个整数是否是个位数。

如果一个数大于0并且小于10,那么这个数是个个位数。翻译成C语言代码就是:

(num_a>0)&&(num_a<0)

就像数学中的规则一样,加括号的原因是需要提高优先级,加了括号的部分先算,不加括号的部分后算。

如果不加括号,这句代码就是从左至右依次运算,这样就无法得到我们想要的计算结果。

就像数学中的规则一样,加括号的原因是需要提高优先级,加了括号的部分先算,不加括号的部分后算。

这里就涉及到了编程代码中的优先级概念,我们接下来学习一下它。

2.优先级

 截止目前我们学过的运算符里面优先级最高的是括号(),也就是有括号的时候,最先计算括号里的。

优先级第二高的是乘法,除法和取余,当他们三个同时存在于一个表达式里面的时候,就从左到右依次计算,比如 

5*3/2%4

优先级第三高的是,加法和减法。这两个计算符号的优先级低于乘法,除法和取余,也就是如果同一个运算中既有乘法和除法, 也有加法和减法,是先计算乘除,再计算加减。这时候就是先计算右边的3*2,再计算4+6了。

4+3*2

优先级再低一级的就是比较运算符,比如大于,小于等等。

 优先级最低的是逻辑运算符,即最后才轮到他们。

对于优先级来说,我们可以简化记忆为,同一优先级中,从左至右依次运算。

不同运算符号之间的优先级高低是

1,计算;2,比较;3,逻辑

而在计算中,又是乘除高于加减。当然,最高优先级的符号是括号

然后是两个例外,第一个是赋值运算符=

赋值运算符的特点是,一定是符号右边完全计算完毕,才对左边的变量进行赋值,因此我们可以理解为,它的优先级最低

第二个例外,就是非运算符!

我们注意观察的话就会发现,上面的运算符都涉及到超过一个以上的变量或常量,而非运算符不一样,它只作用于一个变量或常量,因此它的优先级是很高的,仅次于括号

所以就我们学过的运算符号来说,整体优先级的高低顺序是:

1,括号();2,非运算!;3,乘除;4,加减;

5,比较运算;6,逻辑运算;7,赋值运算。

是不是感觉记起来很麻烦?在实际编程应用中,我们只需要记住两个点:

1,默认从左到右计算;2,多使用括号。

记不清楚这些优先级的时候,建议直接使用括号。这样我们就不会搞混了😁。

3.易错点

eg:

逻辑与运算 && —— 一假必假;

逻辑或运算 || ——  一真必真

4.思维导图

在撰写这篇文章时,我参考了《白纸编程》这个app的观点和思想,我要感谢他们对我的启发和帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/97634.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快速提高写作生产力——使用PicGo+Github搭建免费图床,并结合Typora

文章目录 简述PicGo下载PicGo获取Token配置PicGo结合Typora总结 简述PicGo PicGo: 一个用于快速上传图片并获取图片 URL 链接的工具 PicGo 本体支持如下图床&#xff1a; 七牛图床 v1.0腾讯云 COS v4\v5 版本 v1.1 & v1.5.0又拍云 v1.2.0GitHub v1.5.0SM.MS V2 v2.3.0-b…

Kotlin 基础教程二

constructor 构造器一般情况下可以简化为主构造器 即: class A constructor(参数) : 父类 (参数) 也可以在构造器上直接声明属性constructor ( var name) 这样可以全局访问 init { } 将和成员变量一起初始化 thread {} ktx 默认创建一个线程 susped 挂起 data class 可以简…

博客系统之功能测试

博客系统共有&#xff1a;用户登录功能、发布博客功能、查看文章详情功能、查看文章列表功能、删除文章功能、退出功能 1.登录功能&#xff1a; 1.1测试对象&#xff1a;用户登录 1.2测试用例 方法&#xff1a;判定表 用例 编号 操作步骤预期结果实际结果截图1 1.用户名正确…

【网络基础】数据链路层

【网络基础】数据链路层 文章目录 【网络基础】数据链路层1、对比网络层2、以太网2.1 基本概念2.2 类似技术2.3 以太网帧 3、MAC地址对比IP地址 4、MTU4.1 对IP协议影响4.2 对UDP协议影响4.3 对TCP协议影响4.4 地址、MTU查看 5、ARP协议5.1 协议作用5.2 协议工作流程5.3 数据报…

【FAQ】调用视频汇聚平台EasyCVR的iframe地址,视频无法播放的原因排查

有用户反馈&#xff0c;在调用iframe地址后嵌入用户自己的前端页面&#xff0c;视频无法播放并且要求登录。 安防监控视频汇聚平台EasyCVR基于云边端一体化架构&#xff0c;具有强大的数据接入、处理及分发能力&#xff0c;可提供视频监控直播、云端录像、视频云存储、视频集中…

深入理解JVM——垃圾回收与内存分配机制详细讲解

所谓垃圾回收&#xff0c;也就是要回收已经“死了”的对象。 那我们如何判断哪些对象“存活”&#xff0c;哪些已经“死去”呢&#xff1f; 一、判断对象已死 1、引用计数算法 给对象中添加一个引用计数器&#xff0c;每当有一个地方引用它时&#xff0c;计数器就加一&…

CentOS系统环境搭建(七)——Centos7安装MySQL

centos系统环境搭建专栏&#x1f517;点击跳转 坦诚地说&#xff0c;本文中百分之九十的内容都来自于该文章&#x1f517;Linux&#xff1a;CentOS7安装MySQL8&#xff08;详&#xff09;&#xff0c;十分佩服大佬文章结构合理&#xff0c;文笔清晰&#xff0c;我曾经在这篇文章…

IDEA连接MySQL数据库错误

说明&#xff1a;使用IDEA连接云服务器中的MySQL数据库时&#xff0c;报下面的这个错误&#xff1b; [08S01] Communications link failureThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the serve…

Springboot写单元测试

导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintag…

Log4Qt日志框架(1)- 引入到QT中

Log4Qt日志框架&#xff08;1&#xff09;- 引入到QT中 1 下载源码2 简介3 加入到自己的项目中3.1 使用库文件3.2 引入源文件 4 说明 1 下载源码 github&#xff1a;https://github.com/MEONMedical/Log4Qt 官方(版本较老)&#xff1a;https://sourceforge.net/projects/log4q…

软件工程概述-架构师(三)

软件工程概述&#xff08;老版&#xff09; 软件开发生命周期&#xff1a; 软件定义时期&#xff1a;包括 可行性研究和详细需求分析过程&#xff0c;任务是软件工程必需完成的目标&#xff0c;具有可行问题分析、可行性研究、需求分析等。软件开发时期&#xff1a;软件的 设…

初识微服务

我们在曾经最常见的就是所谓的单体架构&#xff0c;但是由于网民越来越多&#xff0c;单体架构已经逐渐的被淘汰出去&#xff0c;所以我们在单体架构的基础上提出了微服务&#xff0c;它提倡将单一应用程序划分成一组小的服务&#xff0c;服务之间互相协调、互相配合&#xff0…

滑块验证码-接口返回base64数据

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言所需包图片示例使用方法提示前言 滑动验证码在实际爬虫开发过程中会遇到很多,不同网站返回的数据也是千奇百怪。这里分享一种接口返回base64格式的情况以及处理方式 所需包 opencv-python、…

chatGPT-对话爱因斯坦

引言 阿尔伯特爱因斯坦&#xff08; 1879年 3 月 14 日 – 1955 年 4 月 18 日&#xff09;是一位出生于德国的理论物理学家&#xff0c;被广泛认为成为有史以来最伟大、最有影响力的科学家之一。他以发展相对论而闻名&#xff0c;他还对量子力学做出了重要贡献&#xff0c;因…

ES6自用笔记

原型链 引用类型&#xff1a;__proto__(隐式原型)属性&#xff0c;属性值是对象函数&#xff1a;prototype(原型)属性&#xff0c;属性值是对象 ​​​​​​​ 相关方法 person.prototype.isPrototypeOf(stu) Object.getPrototypeOf(Object)替换已不推荐的Object._ _ pro…

Django实现音乐网站 ⑾

使用Python Django框架制作一个音乐网站&#xff0c; 本篇主要是前端开发前的一些必要配置和首页展示开发。 目录 配置应用路由 创建应用路由文件 应用路径加入项目路径 创建项目模板 创建项目及应用模板路径 设置模板路径 设置静态资源路径 创建静态资源路径 配置静态…

步步向前,曙光已现:百度的大模型之路

大模型&#xff0c;是今年全球科技界最火热&#xff0c;最耀眼的关键词。在几个月的狂飙突进中&#xff0c;全球主要科技公司纷纷加入了大模型领域。中国AI产业更是开启了被戏称为“百模大战”的盛况。 但喧嚣与热闹之后&#xff0c;新的问题也随之而来&#xff1a;大模型的力量…

Unity 变量修饰符 之protected ,internal,const , readonly, static

文章目录 protectedinternalconstreadonlystatic protected 当在Unity中使用C#编程时&#xff0c;protected是一种访问修饰符&#xff0c;用于控制类成员&#xff08;字段、方法、属性等&#xff09;的可见性和访问权限。protected修饰的成员可以在当前类内部、派生类&#xf…

华为网络篇 RIP的负载均衡-29

难度2复杂度2 目录 一、实验原理 二、实验拓扑 三、实验步骤 四、实验过程 总结 一、实验原理 RIP是使用跳数&#xff08;经过路由的数量&#xff09;作为metric值的&#xff0c;当网络上存在去往目标的路由有两条以上都是相同metric时&#xff0c;就出现了流量负载均衡。…

uniapp开发微信小程序使用painter将页面转换为图片并保存到本地相册

引言 我使用到painter的原因是&#xff0c;在uniapp开发微信小程序时&#xff0c;需要将一个页面的内容转换成图片保存到本地相册。 起初在网上找到很多都是在uniapp中使用 html2canvas 将网页转换成图片再jspdf将图片转换为pdf&#xff0c;但是这种方式在小程序环境不支持&am…