第五章选择结构程序设计 本章内容: 1关系运算符和关系表达式 2逻辑运算符和逻辑表达式 3f语句的使用 4条件运算符和条件表达式 5 switch语句的使用 6程序举例
第五章 选择结构程序设计 本章内容: 1.关系运算符和关系表达式 2.逻辑运算符和逻辑表达式 3.if语句的使用 4.条件运算符和条件表达式 5.switch语句的使用 6.程序举例
选择结构-根据某些条件决定执行或不执行某组操作 语句1 Y条件 语句2 语句1 语句2 顺序结构 选择结构
顺序结构 语句1 语句2 条件 语句1 语句2 Y N 选择结构 选择结构--根据某些条件决定执行或不执行某组操作
关系运算符和表达式 1.关系运算符及优先次序 比较两个量的运算符称为关系运算符 在C语言中有以下关系运算符: 小于 大于 =大于或等于==等于 !=不等于 关系运算符的优先级别: (1)>、>、<、<=优先级相等, 优先级相等, 前者高于后者。 (2)关系运算符的优先级低于算术运算符 (3)关系运算符的优先级高于赋值运算符
关系运算符和表达式 1.关系运算符及优先次序 比较两个量的运算符称为关系运算符。 在C语言中有以下关系运算符: 大于 >= 大于或等于 = = 等于 != 不等于 关系运算符的优先级别: (1) >、>=、<、<=优先级相等,= =、!=优先级相等, 前者高于后者。 (2) 关系运算符的优先级低于算术运算符。 (3) 关系运算符的优先级高于赋值运算符
2.关系表达式 ■关系表达式的一般形式为: 表达式1关系运算符表达式2 例如:a+b>c-d x>3/2 a'+10的值为“真”,即为1。 (a=3)>(b=5)由于3>5不成立,其值为0 ■关系表达式是表达式,因此也允许出现嵌套的情况 如;a>(b>c,a!=(c=d)等
关系表达式的一般形式为: 表达式1 关系运算符 表达式2 例如:a+b>c-d x>3/2 'a'+10的值为“真” ,即为1。 (a=3)>(b=5)由于3>5不成立,其值为0。 关系表达式是表达式,因此也允许出现嵌套的情况。 如:a>(b>c), a!=(c==d)等。 2.关系表达式
逻辑运算符和表达式 1.逻辑运算符 C语言中提供了三种逻辑运算符 !非运算&&与运算‖或运算 运算符&&、运算符‖均为双目运算符,具有左结合性。 非运算符!为单目运算符,具有右结合性 1)逻辑运算符优先级如下: (1)!高于&&高于‖ (2)&&,‖低于关系运算符,!高于算术运算符(,/)
1.逻辑运算符 C语言中提供了三种逻辑运算符 ! 非运算 && 与运算 || 或运算 运算符&& 、运算符|| 均为双目运算符,具有左结合性。 非运算符!为单目运算符,具有右结合性。 1)逻辑运算符优先级如下: (1) ! 高于 && 高于 || (2) &&, || 低于关系运算符,!高于算术运算符(*, / ) 逻辑运算符和表达式
逻辑运算符 按照运算符的优先顺序可以得出: a>b&&c>d等价于(a>b)&&(>d) !b=c|dc&&x+yc)&&(x+y)<b) 2)逻辑运算的值: ■逻辑运算的值也为“真”和“假”两种,用“1〃和“0〃来 表示。 ■反过来在判断一个量是为“真”还是为“假”时,以“0〃 的数值代表“假”,以非“0〃的数值代表“真
按照运算符的优先顺序可以得出: a>b && c>d 等价于 (a>b) && (c>d) !b==c||dc && x+yc) && ((x+y)<b) 逻辑运算符 2)逻辑运算的值: 逻辑运算的值也为“真”和“假”两种,用“1”和“0 ”来 表示。 反过来在判断一个量是为“真”还是为“假”时,以“0” 的数值代表“假”,以非“0”的数值代表“真”
3)逻辑运算的规则: 1)与运算&& 参与运算的两个量都为真时(非0),结果才为真(值为1, 否则为假(值为0) 例如:5>0&&4>2,由于5>0为真,4>2也为真,其结果 也为“真”,表达式的值为1。 (2)或运算‖ 参与运算的两个量只要有一个为真(非0),结果就为真(值 为1)。两个量都为假(值为0)时,结果为假(值为0) ■例如:5>05>8,结果也就为真(值为1)
(1)与运算&& 参与运算的两个量都为真时(非0),结果才为真(值为1), 否则为假(值为0)。 例如:5>0 && 4>2,由于5>0为真,4>2也为真,其结果 也为“真” ,表达式的值为1。 3)逻辑运算的规则: (2)或运算|| 参与运算的两个量只要有一个为真(非0),结果就为真(值 为1)。 两个量都为假(值为0)时,结果为假(值为0)。 例如:5>0 || 5>8, 结果也就为真(值为1)
3)逻辑运算的规则: (3)非运算! 参与运算量为真(非0)时,结果为假(值为0);参与运 算量为假(值为0)时,结果为真(值为1) 例如:!(5>0的结果为假,即为0 2.逻辑表达式 逻辑表达式的一般形式为: 表达式&&表达式表达式‖表达式!表达式 逻辑表达式的值:各种逻辑运算的最后值,以“1〃和“0 分别代表“真”和“假
(3)非运算! 参与运算量为真(非0)时,结果为假(值为0);参与运 算量为假(值为0)时,结果为真(值为1)。 例如:!(5>0)的结果为假,即为0。 2.逻辑表达式 逻辑表达式的一般形式为: 表达式 && 表达式 表达式 || 表达式 !表达式 逻辑表达式的值:各种逻辑运算的最后值,以“1”和“0” 分别代表“真”和“假” 。 3)逻辑运算的规则:
分析下段程序的输出结果 main char=k inti=1,j=2,k=3: 0,0 float x=3e+5, y=0.85; printf(ood, %odn",!x*y, ! !x) 1,0 printf("%d, %d\", x i&&j-3, k<j&&x<y); 0, 1 printf(%od, odin",i=5&&c&&lj=8),x+ylli+j+k);
main() { char c='k'; int i=1,j=2,k=3; float x=3e+5,y=0.85; printf("%d,%d\n", !x*!y, !!!x); printf("%d,%d\n", x||i&&j-3, i<j&&x<y); printf("%d,%d\n", i==5&&c&&(j=8), x+y||i+j+k); } 分析下段程序的输出结果 0,0 1,0 0,1
说明 在逻辑表达式的求解中,并不是所有的逻辑运算符 都执行,只有在必须执行下一个逻辑运算符才能求出表 达式的值时,才执行下一个运算符。 (1)表达式1&&表达式2&& a+b>0&&b++ (a=1b=2) 如果:表达式1的值是0,无论表达式2的值是什么, 整个表达式的值都为0,因此表达式2就不计算了。 (2)表达式1‖表达式2‖ a+b>0‖|b++ (a=1,b=2) 如果:表达式1的值是1,无论表达式2的值是什么, 整个表达式的值都为1,因此表达式2就不计算了
在逻辑表达式的求解中,并不是所有的逻辑运算符 都执行,只有在必须执行下一个逻辑运算符才能求出表 达式的值时,才执行下一个运算符。 (1) 表达式1 && 表达式2 && …… a+b>0 && b++ (a=1,b=-2) 如果:表达式1的值是0,无论表达式2的值是什么, 整个表达式的值都为0,因此表达式2就不计算了。 (2)表达式1 || 表达式2 || …… a+b>0 || b++ ( a=1,b=2 ) 如果:表达式1的值是1,无论表达式2的值是什么, 整个表达式的值都为1,因此表达式2就不计算了。 说 明: