在上节《C语言if else语句》中看到,if 的判断条件中使用了<=
、>
、!=
等符号,它们专门用在判断条件中,让程序决定下一步的操做,称为关系运算符(Relational Operators)。
关系运算符在使用时,它的的两边都会有一个表达式,好比变量、数值、加减乘除运算等,关系运算符的做用就是判明这两个表达式的大小关系。注意,是判明大小关系,不是其余关系。
C语言提供了如下关系运算符:html
关系运算符 | 含 义 | 数学中的表示 |
---|---|---|
< | 小于 | < |
<= | 小于或等于 | ≤ |
> | 大于 | > |
>= | 大于或等于 | ≥ |
== | 等于 | = |
!= | 不等于 | ≠ |
关系运算符都是双目运算符,其结合性均为左结合。关系运算符的优先级低于算术运算符,高于赋值运算符。在六个关系运算符中,<、<=、>、>=的优先级相同,高于==和!=,==和!=的优先级相同。
在C语言中,有的运算符有两个操做数,例如 10+20,10和20都是操做数,+ 是运算符。咱们将这样的运算符称为双目运算符。同理,将有一个操做数的运算符称为单目运算符,将有三个操做数的运算符称为三目运算符。
常见的双目运算符有 +、-、*、/ 等,单目运算符有 ++、-- 等,三目运算符只有一个,就是 ? :,咱们将在《C语言条件运算符》中详细介绍。
关系运算符的两边能够是变量、数据或表达式,例如:
1) a+b > c-d
2) x > 3/2
3) 'a'+1 < c
4) -i-5*j == k+1
关系运算符也能够嵌套使用,例如:
1) a > (b > c)
2) a != (c == d)
关系运算符的运算结果只有 0 或 1。当条件成立时结果为 1,条件不成立结果为 0。例如:spa
咱们将运算结果 1 称为“真”,表示条件成立,将 0 称为“假”,表示条件不成立。
下面的代码会将关系运算符的结果输出:.net
运行结果:
1, 0
1, 1
0, 0
对于含多个关系运算符的表达式,如 k==j==i+5,根据运算符的左结合性,先计算k==j,该式不成立,其值为0,再计算0==i+5,也不成立,故表达式值为0。
须要提醒的是,==
才表示等于,而=
表示赋值,你们要注意区分,切勿混淆。code
if 语句的判断条件中不是必需要包含关系运算符,它能够是赋值表达式,甚至也能够是一个变量,例如:htm
都是容许的。只要整个表达式的值为非0,条件就成立。
上面两种状况都是根据变量 b 的最终值来判断的,若是 b 的值为非0,那么条件成立,不然不成立。
又如,有程序段:ip
意思是,把 b 的值赋予 a,若是为非0则输出该值,不然输出“a=0”字符串。这种用法在后面的程序中会常常出现。ci