第5章分支结构程序
本章要点:
关系运算符和关系表达式
逻辑运算符和逻辑表达式
条件运算符和逻辑表达式
if语句
switch语句
关系运算符和关系表达式
运算符
名称
优先次序
<
小于
优先级相同(高)
<=
小于或等于
>
大于
>=
大于或等于
==(连续两个=)
等于
优先级相同(低)
!=
不等于
表4-1 C语言中的6种关系运算符
优先级关系:算术运算符(高)→关系运算符(中)→赋值运算符(低)
关系运算符
关系表达式
关系表达式:由关系运算符构成的表达式,主要用于选择结构中的条件判断。例如,a>=b,a>= =c等。在C语言中,当关系表达式成立时,其结果值为真(1),否则,其值为假(0)。
若a=3,b=2,表达式“a>b”为真,表达式值为1。
若a=3,b=2,c=1;表达式b+c<a 为假,表达式值为0。
例:试求x=6>5>4的值。
分析:x=6>5>4相当于:x=(6>5)>4=1>4=0。
注:注意区别表示“等于”关系的运算符“= =”和表示“赋值运算”的“=”。
逻辑运算符和逻辑表达式
逻辑运算符
:
逻辑与&&:a&&b;逻辑或||:a||b;逻辑非!:!a
关于逻辑运算符的说明:
(1)逻辑运算符的优先次序如下:!(高)→&&(中)→||(低)
(2)逻辑运算符具有自左向右的结合性
(3)优先级次序:(由高到低)
!(逻辑非)→算术运算→关系运算→&&(逻辑与)→||(逻辑或)→赋值运算
逻辑运算符
逻辑表达式的值应该是一个逻辑值“真”或“假”,即为“1”或“0”。
表4-3 逻辑运算的真值表
x
y
x && y
x || y
!x
!y
非0
非0
1
1
0
0
非0
0
0
1
0
1
0
非0
0
1
1
0
0
0
0
0
1
1
例4-1(P59) 有整型变量a=3,b=4,c=5,计算表达式!(x=a)&&(y=b)||0。
关于逻辑运算的几点说明:
(1)逻辑运算用0和非0判定它们的“真”或“假”。
(2)在逻辑表达式求解中,并不是所有逻辑运算符都需执行,有时只需执行一部分就可得出逻辑表达式的最后结果。例如x&&y&&z,若x为假,则立即得出整个表达式为假,跳过后面的运算;再如a||b||c,若a为真,则整个表达式的值为真,跳过后面的运算。
(3)逻辑表达式的运用场合与关系表达式完全相同,也是用于流程控制语句中的条件描述。
例:求下列表达式的值:8>=5&&2||6<5-!0
优先级:非(!)>算术运算符>关系运算符>逻辑运算符(&&、||)>赋值运算符
条件表达式构成的选择结构
:由两个符号“?”和“:”组成,要求有3个操作对象,称三目(元)运算符,它是C语言中唯一的三目运算符。
:表达式1?表达式2:表达式3
:先求解表达式1,若值为非0,表示条件为真,则求解表达式2,此时表达式2的值就作为整个条件表达式的值;若表达式1的值为0,表示条件为假,则求解表达式3,表达式3的值就是整个条件表达式的值。
说明:
(1)条件表达式不能取代一般的if语句,仅当if语句中内嵌的语句为赋值语句(且两个分支都给同一变量赋值)时才能代替if语句。
(2)条件表达式的优先级别仅高于赋值运算符,而低于前面介绍过的所有运算符。
(3)条件运算符的结合方向为“自右至左”。
注意优先级顺序:( )高于! ++ -- 高于算术运算符
高于关系运算符(< <= > >= == !=)高于逻辑运算符
高于条件运算符高于赋值运算符高于逗号运算符
if语句
if语句的基本形式
(1)语句形式:if(表达式) 语句体
(2)执行过程:首先计算if后面圆括号中的表达式的值,若为非0值(条件成立),则执行语句1;否则不执行语句1。
例如根据键盘输入的x的值计算y的值,计算规则为,如果x=0,则y=0,否则y=1/x。
#include<>
void main(){float x,y;
scanf("%f",&x);
if(x==0) y=0;
if(x!=0) y=1/x; printf("y=%f\n",y);}
(if-else语句)
(1)语法形式: if(表达式) 语句体1;else 语句体2;
(2)执行过程:首先计算圆括号内的表达式值,若为非0值,则执行语句体1,;否则执行语句体2。
例如根据键盘输入x的值计算y的值,计算
励志主题班会课件 来自淘豆网m.daumloan.com转载请标明出处.