二级C语言第四章选择结构程序设计.ppt
文本预览下载声明
第四章 选择结构程序设计 4.1 关系运算符和关系表达式 4.1.1 关系运算符 关系运算符用于判断两个数据之间的某个关系是否成立。C语言提供了六种关系运算符: 小于 = 小于等于 大于 = 大于等于 == 等于 != 不等于 关系运算的结果是逻辑值:成立(真)或不成立(假)。 53 运算结果为真 35 运算结果为假 使用关系运算符需要注意 (1)注意书写格式 “==”是表示判断两个数据数值是否相等,一定要和赋值运算符“=”区分开。 (2)注意运算符优先级和结合性 “”,“=”,“”,“=”的优先级相同(6级),“==”和“!=”的优先级相同(7级)。 关系运算符的结合方向均为自左向右结合。 (3)关系运算符均是二元运算符,一个关系运算符的两个操作数类型要相同,如果类型不一致,系统将自动进行类型转换。 ’A’==65 运算结果为真 ‘0’==0 运算结果为假 4.1.2 关系表达式 关系表达式是指利用关系运算符将两个表达式连接起来形成的式子。 关系运算的结果为逻辑值,由于C语言中没有逻辑类型,因此当运算结果为真时,用整数1表示,当运算结果为假时,用整数0表示。 关系表达式的值也是一个逻辑值,即1或0。 假设变量已如下定义: int a=3,b=2,c=1,d=5,f; ab 表达式值为1 ab==c 等价于(ab)==c,表达式的值为1 b+ca 等价于(b+c)a,关系表达式的值为0 d=ab 等价于d=(ab),d的值为1 f=abcd 等价于f=(((ab)c)d),f的值为0 4.2 逻辑运算符和逻辑表达式 4.2.1 逻辑运算符 逻辑与运算 与运算的表示符号为“”,表示的含义是“并且”,它可以表达两个条件必须同时满足的语义。 与运算符的语法格式为: 表达式1表达式2 如果表达式1和表达式2都为真,与运算结果即为真,否则,运算结果为假。 逻辑或运算 || 或运算的表示符号为‘ || ’,表示的含义是“或者”,它可以表达两个条件只要有一个满足即可得语义。 或运算的语法格式为: 表达式1||表达式2 如果表达式1和表达式2都为假,或运算结果为假,否则,运算结果为真。 逻辑非运算 ! 非运算的表示符号为“!”,表示的含义是“否定”,它可以表达条件不满足的语义。 非运算的语法格式为: !表达式1 如果表达式1为真,非运算结果为假;如果表达式1为假,非运算结果为真。 三个逻辑运算符的优先级从高到低依次为:非运算(2级)、与运算(11级)、或运算(12级)。非运算是自右向左结合的,与运算和或运算是自左向右结合的。 4.2.2 逻辑表达式 逻辑表达式是指利用逻辑运算符将逻辑量或关系表达式连接起来形成的式子, 逻辑表达式的值是一个逻辑值,即“真”或“假”,在C语言中分别用整数1或0表示。 在C语言中,任何表达式(包括变量、常量以及由运算符连接的表达式)都可以参与逻辑运算。也就是说任何一个表达式都可以作为一个逻辑值来使用,规则是:如果该表达式的值等于0,则作为逻辑假值参与逻辑运算;如果该表达式的值等于非0值,则作为逻辑真值参与逻辑运算。 假设变量已如下定义: int a=4;b=5; !a 表达式值为0 ab 表达式值为1 a||b 表达式值为1 !a||b 表达式值为1 40||2 等价于(40)||2,表达式值为1 ‘c’‘d’ 表达式值为1 !x 等价于x==0,当x值为0时,表达式!x值为1, 表达式x==0值也为1;当x值不为0时,表达 式!x和表达式x==0的值均为0 短路特性 运算符和||有一个很重要的短路特性。即这两个运算符首先计算左操作数的值,然后才计算右操作数的值,如果表达式的值可以通过左操作数的值直接得到,则不再计算右操作数的值。 ab 首先计算a的值,如果a为假值,则可以直接得出表达式的值为0,此时不再计算b的值;如果a为真值,则计算b的值,从而得到表达式的值。 a||b 首先计算a的值,如果a为真值,则可以直接得出表达式的值为1,此时不再计算b的值;如果a为假值,则计算b的值,从而得到表达式的值。 考虑下面的表达式,思考一下表达式计算后,变量m、n的值如何变化。 int a=1;b=2;c=3;d=4;m=1;n=1; (m=ab)(n=cd) 4.3 选择结构 4.3.1 if语句 语法格式:if (表达式) 语句 执行过程是:先计算表达
显示全部