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