4.1 引例
例4.1 输入三角形的三条边判断是否构成三角形,若能则计算并输出三角形的面积,否则给出出错提示
流程图描述

代码描述

例4.2
流程图描述

代码描述

4.2 关系运算符 关系运算符 条件运算符
1.关系运算符
关系运算符用于判断两个操作数的大小关系。
| 运算符 | 含义 |
| > | 大于 |
| >= | 大于等于 |
| < | 小于 |
| <= | 小于等于 |
| == | 等于 |
| != | 不等于 |
(1)关系运算符都是双目运算符,其结合方向是左结合
(2)关系运算符的优先级低于算术运算符,但是高于赋值运算符
(3)关系运算符中,>,<,>=,<=的优先级相同,==、!=的优先级相同,前者的优先级高于后者,即是“>=”的优先级高于“==”。
2.关系表达式
用关系表达式将两个表达式连接起来的式子称为关系表达式。
功能:比较两个表达式的大小,返回一一个逻物值。
注意:
(1)注意区分运算符“=”和“==”。“=”是赋值运算符,“==”是关系运算符。
(2)对实数进行相等判断可能得不到正确的结果,例如“1.0/3*3.0==1.0”
(3)关系表达式中可以出现赋值运算符。如“a>(b=0)",但是不能写成“a>b=0”的形式。因为关系运算符的优先级高于赋值运算符,表达式“a>b=0"相当于“(a>b)=0" ,赋值运算符左边不是变量,会出现编译错误。
关系表达式主要用于分支结构中的条件判断。关系表达式的结果是一个逻辑值“真"或“假”,由于C语言中没有逻辑类型的数据,因此用“1”表示“真”,“0”表示“假”。例如关系表达式"(a=3)>(b=8)”的值为0。
例4.3
流程图

代码描述

逻辑运算符和逻辑表达式
1、逻辑运算符
关系表达式只能描述单一的条件。对于较复杂的复合条件,例如“x小于10且x大于4”,如果用关系表达式“4<x<10”来描述,则当x=2时,由于关系运算符是左结合的,因此先计算“4<x",其值为0;然后再计算“0<10",其值为1;即说明当x=2时满足关系“4<x<10”,很显然是错误的。此时需要用到逻辑运算符将若千个关系表达式连接起来方能正确书述上述关系。

2.逻辑表达式
将两个表达式连接起来的式子称为逻辑表达式
真或假既为1或0

(1)参与逻辑运算的数据可以是1和0,也可以是非零值和0,还可以是任何类型的数指,但最终都是以非0和0来列渐他们是“真“或“假”。
(2)在逻辑表达式中也可以使用赋值运算符,如“a& &=0”的形式,因为逻辑运算符的优先级高于赋值运算符,表达式“a&&b=0"相当于“(a&&b)=0"、赋值运算符左边不是变量,会出现编译错误。
(3)C语言规定,只对决定整个表达式值所需的最少数目的子表达式进行运算。即在由若干个子表达式组成的逻辑表达式中,从左向右计算,当计算出一个子表达式的值就确定了整个逻辑表达式的值时。此后就不再计算右边剩下的子表达式的值,这种情况称为“短路”。
①对于逻辑与(&&)运算,若“& &”左边的表达式的值为假,则可以得出整个表达式的值为假,那么“&&”右边的表达式将不再进行计算;只有当“&&”左边的表达式值为真时才计算右边表达式的值。
②对于逻辑或(||)运算,若“||”左边的表达式的值为真,则可以得出整个表达式的值力真。那么“||”右边的表达式将不再进行计算;只有当“||”左边的表达式值为假时才计算右边。
例4.5
流程图

代码描述

条件运算符和条件表达式
1.条件运算符
条件运算符由?和:两个符号组成
2.条件表达式
由条件运算符将3个表达式连接起来的式子称为条件表达式
例4.6
流程图

代码描述

使用if——else实现分支结构
if——else语句
1.双分支if语句
例4.7
流程图

代码描述

例4.8
流程图

代码描述

2.单分支if语句
例4.9
流程图

代码描述

例4.10
流程图

代码描述

例4.11
流程图

代码描述

if语句的嵌套
例4.12
流程图

代码描述

例4.13
流程图

代码描述

例4.15
流程图

代码描述

使用switch语句实现分支结构
1.在switch语句格式中的每个语句后面都要使用break语句
例4.16
流程图

代码描述

2.在switch语句格式中的部分语句后面使用break语句
例4.17
流程图

代码描述

代码描述

代码描述

例4.19
流程图

代码描述

例4.20
流程图

代码描述

2.嵌套格式实现
代码描述

3.多分支格式实现
代码描述

.例4,21
流程图

代码描述

