目录
1.关系操作符
C语言当中用于比较的表达式,比较就代表了两个事物之间的关系,所以这种用于比较的表达式,被称为“关系表达式”
常见的关系运算符有以下六个
>(大于)
<(小于)
>=(大于等于)
<=(小于等于)
==(等于)
!=(不等于)
一个关系表达式的返回值是0或1,表示真假,跟C语言通常标准一样,0表示假,非零表示真,在这里0表示假,1(非零)表示真
这种返回值可以用到后续讲解的if()while()循环结构里面进行判定,从而结束无休止的循环下去
接下来详细介绍一下
1.1 =(赋值操作符)和==(等号)的具体区别
大家可以发现,仅仅只是缺少一个=,代码执行的结果却是截然不同
这是因为单独的一个=代表赋值操作符,在if()的括号里面写了a=3,相当于给a赋值了3,那么当然会满足if语句的执行条件,从而去执行if语句中的代码,而当括号里面是a==3时,才真正代表是必须a的值就是3才会执行if语句的条件,不然就执行else语句
1.2 多个关系操作符不宜连用
这里要严格说明,在C语言的语法之中,和我们学的数学知识是有一定区别的,比如我们想要一个表达式,代表b的值在a和c之间,如果写成a<b<c,并不能达到我们预期的效果
很明显,并不满足a<b<c,但我们结果依旧显示的是hello,这是为什么呢?
这是因为关系操作符都是从左向右依次执行的
实际上执行的是(a<b)<c
因为先判定a<b,如果成立关系表达式就是1,不成立就是0, (a<b)<3,所以导致if语句顺利执行
那我们要如何才能使得我们的目的正确的实现呢???
此时就需要用到&&操作符了
此时就成功达到了我们的目的,由于不满足a<b<c,所以最终执行了else语句里面的内容
2. 隐藏重点:条件操作符
条件操作符也叫作三目操作符
三目操作符顾名思义也就是说需要有三个操作数,也就是下面的exp1,exp2,exp3
exp1?exp2:exp3
其中?用来连接第一个操作数和第二个操作数,:用来连接第二个操作数和第三个操作数
这是固定的语法规则,记住即可
条件操作符的计算逻辑为:如果exp1为真,那么exp2计算,计算出来的结果就是整个表达式的结果
如果exp1为假,那么exp3计算
相信上面的大家肯定根本理解不了(天才除外哈)
那接下来就来实际操作演示一下
实际上将上面所说的三个操作数的关系,用if和else语句来解释就清晰明朗多了,很明显可以看出,a>10的时候,便执行b=3的运算结果,当a>10出错的时候,那便执行else语句的结果,也就是条件操作符中的第三个操作数
看到这里,大家就可以感觉到通过使用条件操作符(三目操作符),实际上便可以对if,else语句进行简化
3 逻辑操作符
逻辑运算符主要有以下三个运算符
!:逻辑取反运算符(改变单个表达式的真假)
&&:并且
||:或者
比如在if()等等语句中,括号里面的内容需要有一个返回值,此时如果我们加上!逻辑取反运算符,我们就可以改变这个表达式的真假,比如原本是需要a==3的时候才成立,一旦加上!,那么只要a不等于3,这个if语句便都可以执行下去
&&和||当作并且和或者就可以理解了,并且代表两边都需要为真,而或者只需要两边只有一个为真即可