# 关系运算符
## 为什么要学习关系运算符
- 默认情况下,我们在程序中写的每一句正确代码都会被执行。但很多时候,我们想在某个条件成立的情况下才执行某一段代码
- 这种情况的话可以使用条件语句来完成,但是学习条件语句之前,我们先来看一些更基础的知识:如何判断一个条件成不成立。
## C语言中的真假性
- 在C语言中,条件成立称为“真”,条件不成立称为“假”,因此,判断条件是否成立,就是判断条件的“真假”。
- 怎么判断真假呢?C语言规定,任何数值都有真假性,任何非0值都为“真”,只有0才为“假”。也就是说,108、-18、4.5、-10.5等都是“真”,0则是“假”。
## 关系运算符
- 在程序中经常需要比较两个量的大小关系,以决定程序下一步的工作。比较两个量的运算符称为关系运算符。
|序号||运算符|结合性|
|--|--|--|--|
|1|>|大于 如:a>b a>3 5>4 1>2|左结合|
|2|<|小于 如:a<c d<3 2<5|左结合|
|3|>=|大于等于 如: a>=1 d>=c|左结合|
|4|<=|小于等于 如: a<=0 i<=19|左结合|
|5|==|等于 i==3 a==b|左结合|
|6|!=|不等于 a!=b c!=5|左结合|
- 关系运算符的运算结果只有2种:如果条件成立,结果就为1,也就是“真”;如果条件不成立,结果就为0,也就是“假”。
```
int a = 4, b = 10;
int result = a > b; //0
result = a == b; //0
result = a < b; //1
result = a + b > b; // 1
```
> 算数运算符的优先级大于关系型运算符。
# 关系运算符优先级和结合性
## 关系运算符结合性
- 关系运算符都是双目运算符,其结合性均为左结合。
+ 例如4>3>2:先算4>3,条件成立,结果为1。再与2比较,即1>2,条件不成立,结果为0。因此4>3>2的结果为0。
## 关系运算符优先级
- 关系运算符中`==`、`!=`的优先级相等,`<`、`<=`、`>`、`>=`的优先级相等,且前者的优先级低于后者
+ 例如2==3>1:先算3>1,条件成立,结果为1。再计算2==1,条件不成立,结果为0。因此2==3>1的结果为0。
- 关系运算符的优先级小于算术运算符
+ 例如3+4>8-2:先计算3+4,结果为7。再计算8-2,结果为6。最后计算7>6,条件成立,结果为1。因此3+4>8-2的结果为1。
## Demo
计算下列表达式的值
```
3 > 4 + 7;
( 3 > 4 ) + 7;
5 != 4 + 2 * 7 > 3 == 10;
```
写代码验证