在这一节课当中,我们来讲解一下,剩余的一些基础运算符的用法。很多的运算符,需要结合着后面我们即将学到的复杂一些的知识点,这样才能有更深入的理解。所以,我们此时先讲解简单一些的,也是比较典型一些的运算符。 首先,我们来看一下:关系运算符:“大于”、“小于”、“相等”、“大于或者等于”、“小于或者等于”、“不相等”。 这些运算符,我们在学数学的时候,已经学过了,只是在C语言中,这其中有几个运算符的写法和数学中的不同。 比如:“相等”,在C语言中,使用两个等号(==)来表示。如果是一个等号(=),在C语言中表示“赋值”。再比如:“大于或者等于”,在C语言中这样来写:“>=”;“小于或者等于”,在C语言中这样写:“<=”;再比如:“不相等”,在C语言中的写法是这样:“!=”,一个“感叹号”连接一个“等号”。 我们来用一段程序,来看一下这些关系运算符的使用方法: 关系运算符举例 上述这段程序,还是很好理解的。关于关系运算符,我们暂时先讲解到这里,在后面的课程中,再结合着具体的实例,加深对于“关系运算符”的理解。 接下来,我们来看一下“条件运算符”,也称之为“三目运算符”这个运算符是这样的:(?:),一个“问号”,和一个“冒号”,这样组合起来,可以起到实现if...else语句的一些效果,但是无法取代if...else语句,只是在某些时候,使用三目运算符,程序写起来方便一些。 我们来看下面这段代码: 三目运算符 在上述程序的第7行,大概含义是这样:如果变量num1的值大于num2的值,那么就将num1的值赋值给变量num3,否则就将num2的值赋值给num3 如果使用“if...else”的写法,就会写成下面这种形式: if...else写法形式 上述这段程序,使用“if...else”的形式,来描述了第二部分那段“三目运算符”的程序了。两者之间所表达的含义是相同的,但是可以看出来,在这个场景中,使用“三目运算符”来写的话,程序更加简洁一些了。 接下来,我们来讲解一下C语言中的“逻辑运算符”了,也是我们这节课的重点。 逻辑运算符有三种:逻辑与(&&)、逻辑或(||)、逻辑非(!) (1)对于“与”来讲 “真”&&“真”的结果为:真 “真”&&“假”的结果为:假 “假”&&“假”的结果为:假 (2)对于“或”来讲 “真”||“真”的结果为:真 “真”||“假”的结果为:真 “假”||“假”的结果为:假 (3)对于“非”来讲 “!真”的结果为:假 “!假”的结果为:真 在C语言中,“0”为“假”,其他数字都为“真”。我们来看如下这段程序: 逻辑运算符 上述这段程序,我们来大致分析一下: 在第7行,“变量num1的值小于num2的值,并且变量num2的值小于num3的值”,这个情况是成立的。 在第12行,“变量num1的值大于num2的值,或上数字0”,这个情况条件是不成立的 在第17行,“将变量num1的值,进行‘逻辑非’运算”,结果是“假”。因为num1的值为10,除了0其它都为“真”,所以“!真”的结果为“假”。所以,最终程序的运行效果如下所示: 程序运行结果 接下来,我们来看一下逻辑运算符的“短路特性”: 我们来看下面这段程序: 逻辑运算符的“短路特性” 上述程序中,在第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”这个表达式了。 在一些考试题中,会出现“逻辑运算符短路特性”的这样的题型,只要我们对于“短路特性”有了一定的了解,再遇到这样的题目的时候,就不容易出错了。 关于“运算符”这块,我们通过上一节课和这一节课,讲解到了一些基础的部分。至于其它的一些运算符,我们到后面的章节中,结合着具体复杂一些的知识点,再一起结合进去进行讲解。 下一节课,我们将进入“流程控制”这部分的知识讲解了。也就是我们的课程进入了一个新的阶段了。 今天我们就暂时先学到这里,我们下一节课再见! |
|