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的观点和思想,我要感谢他们对我的启发和帮助。

  • 34
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 24
    评论
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值