c语言 12大于12么,C语言第12课:讲解一些常见运算符的用法,以及逻辑运算符的“短路特性”...

在这一节课当中,我们来讲解一下,剩余的一些基础运算符的用法。很多的运算符,需要结合着后面我们即将学到的复杂一些的知识点,这样才能有更深入的理解。所以,我们此时先讲解简单一些的,也是比较典型一些的运算符。

首先,我们来看一下:关系运算符:“大于”、“小于”、“相等”、“大于或者等于”、“小于或者等于”、“不相等”。

这些运算符,我们在学数学的时候,已经学过了,只是在C语言中,这其中有几个运算符的写法和数学中的不同。

比如:“相等”,在C语言中,使用两个等号(==)来表示。如果是一个等号(=),在C语言中表示“赋值”。再比如:“大于或者等于”,在C语言中这样来写:“>=”;“小于或者等于”,在C语言中这样写:“<=”;再比如:“不相等”,在C语言中的写法是这样:“!=”,一个“感叹号”连接一个“等号”。

我们来用一段程序,来看一下这些关系运算符的使用方法:

30edeff969350437000bdc72cde4712c.png

关系运算符举例

上述这段程序,还是很好理解的。关于关系运算符,我们暂时先讲解到这里,在后面的课程中,再结合着具体的实例,加深对于“关系运算符”的理解。

接下来,我们来看一下“条件运算符”,也称之为“三目运算符”这个运算符是这样的:(?:),一个“问号”,和一个“冒号”,这样组合起来,可以起到实现if...else语句的一些效果,但是无法取代if...else语句,只是在某些时候,使用三目运算符,程序写起来方便一些。

我们来看下面这段代码:

2125d941f94e7ce0cd78e4c76e0a7ef2.png

三目运算符

在上述程序的第7行,大概含义是这样:如果变量num1的值大于num2的值,那么就将num1的值赋值给变量num3,否则就将num2的值赋值给num3

如果使用“if...else”的写法,就会写成下面这种形式:

a898c126e913aa71e3d3a6b3c1598bf6.png

if...else写法形式

上述这段程序,使用“if...else”的形式,来描述了第二部分那段“三目运算符”的程序了。两者之间所表达的含义是相同的,但是可以看出来,在这个场景中,使用“三目运算符”来写的话,程序更加简洁一些了。

接下来,我们来讲解一下C语言中的“逻辑运算符”了,也是我们这节课的重点。

逻辑运算符有三种:逻辑与(&&)、逻辑或(||)、逻辑非(!)

(1)对于“与”来讲

“真”&&“真”的结果为:真

“真”&&“假”的结果为:假

“假”&&“假”的结果为:假

(2)对于“或”来讲

“真”||“真”的结果为:真

“真”||“假”的结果为:真

“假”||“假”的结果为:假

(3)对于“非”来讲

“!真”的结果为:假

“!假”的结果为:真

在C语言中,“0”为“假”,其他数字都为“真”。我们来看如下这段程序:

ddc51a6ed9e2e01ef32f51d9e05819dd.png

逻辑运算符

上述这段程序,我们来大致分析一下:

在第7行,“变量num1的值小于num2的值,并且变量num2的值小于num3的值”,这个情况是成立的。

在第12行,“变量num1的值大于num2的值,或上数字0”,这个情况条件是不成立的

在第17行,“将变量num1的值,进行‘逻辑非’运算”,结果是“假”。因为num1的值为10,除了0其它都为“真”,所以“!真”的结果为“假”。所以,最终程序的运行效果如下所示:

338a5a20399f6c7ff03248f75ea68769.png

程序运行结果

接下来,我们来看一下逻辑运算符的“短路特性”:

我们来看下面这段程序:

2c71c9649cfe252f1f8d2cf98be34041.png

逻辑运算符的“短路特性”

上述程序中,在第9行,首先,“变量num1的值大于num2的值”这个条件不成立,因为num1的值为10,num2的值为20。运算符(&&)前面的条件语句不成立,后面的“res2 = 1”这条语句也就不会去执行了,最终变量res1的值为“0”,变量“res2”的值也为“0”,因为“res2 = 1”没有被执行到。

在第11行,首先,“变量num1的值大于num2的值”虽然不成立,但是此处使用的是“条件或(||)”来运算,所以会继续往后执行“res4 = 1”这个表达式,最终,变量res3的值为“0”,变量res4的值为“1”。

这段程序的第9行就体现出了逻辑运算符的“短路特性”了。当“num1 > num2”这个条件不成立的时候,整个表达式的结局就已经确定为“假”了,所以就没有必要去执行后面的“res2 = 1”这个表达式了。

在一些考试题中,会出现“逻辑运算符短路特性”的这样的题型,只要我们对于“短路特性”有了一定的了解,再遇到这样的题目的时候,就不容易出错了。

关于“运算符”这块,我们通过上一节课和这一节课,讲解到了一些基础的部分。至于其它的一些运算符,我们到后面的章节中,结合着具体复杂一些的知识点,再一起结合进去进行讲解。

下一节课,我们将进入“流程控制”这部分的知识讲解了。也就是我们的课程进入了一个新的阶段了。

今天我们就暂时先学到这里,我们下一节课再见!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值