清华大学出版社 TSINGHUA UNIVERSITY PRESS 第五章 选择结构程序设计
第五章
清华大学出版社 TSINGHUA UNIVERSITY PRESS 本章要点 ■关系表达式 逻辑表达式 选择结构程序设计
l 本章要点 n 关系表达式 n 逻辑表达式 n 选择结构程序设计
清华大学出版社 TSINGHUA UNIVERSITY PRESS ●主要内容 51关系运算符和关系表达式 52逻辑运算符和逻辑表达式 53语句 54 switch语句 55程序举例
l 主要内容 5.1 关系运算符和关系表达式 5.2 逻辑运算符和逻辑表达式 5.3 if语句 5.4 switch语句 5.5 程序举例
清华大学出版社 TSINGHUA UNIVERSITY PRESS 51关系运算符和关系表达式 关系运算符及其优先次序 (小于) (小于或等于) 3.> 大于) 优先级相同(高) 4.>= (大于或等于) (等干) 6.说明: 关系运算符的优先级低于算术运算符 关系运算符的优先级高于赇值运算符 C程序设计(第三版) http:/ccf.tsinghua.edu.cn
C程序设计(第三版) 4 http://ccf.tsinghua.edu.cn 4 5.1 关系运算符和关系表达式 1.关系运算符及其优先次序 1. (大于) 4. >= (大于或等于) 5. == (等于) 6. != (不等于) 优先级相同(高) 优先级相同(低) 说明: 关系运算符的优先级低于算术运算符 关系运算符的优先级高于赋值运算符
清华大学出版社 TSINGHUA UNIVERSITY PRESS 51关系运算符和关系表达式 2.关系表达式 用关系运算符将两个表达式(可以是算术表达式或 关系表达式,逻辑表达式,赋值表达式字竺韦让式 接起来的式子,称关系表达式C语言中没有专用 的逻辑值,1代表 例:a>ba+b>b+c(a=3)>(b=5)2aC真,0代表假 关系表达式的值是一个逻辑值)即“真”或“假”。 例:关系表达式”a>b”的值为“真”,表达式的值为1 C程序设计(第三版) http:/ccf.tsinghua.edu.cn
C程序设计(第三版) 5 http://ccf.tsinghua.edu.cn 5 5.1 关系运算符和关系表达式 2.关系表达式 • 用关系运算符将两个表达式(可以是算术表达式或 关系表达式,逻辑表达式,赋值表达式,字符表达式) 接起来的式子,称关系表达式 例:a>b,a+b>b+c,(a=3)>(b=5), ’a’b)>(bb”的值为“真” ,表达式的值为1。 C语言中没有专用 的逻辑值,1代表 真,0代表假
清华大学出版社 TSINGHUA UNIVERSITY PRESS 5.2逻辑运算符和逻辑表达式 逻辑运算符及其优先次序 (1)&& (逻辑与)相当于其他语言中的AND (2) (逻辑或)相当于其他语言中的OR (3)! (逻辑非)相当于其他语言中的NOT 例:a&b若a,b为真,则a&&b为真。 a|b若a,b之一为真,则ab为真。 芒a为直而a为侣 优先次序: !(非)->&&O-|O 逻辑运算符中的“&&”和“‖7°低于关系运算符,“!”高于算 术运算符 C程序设计(第三版) http:/ccf.tsinghua.edu.cn 6
C程序设计(第三版) 6 http://ccf.tsinghua.edu.cn 6 5.2 逻辑运算符和逻辑表达式 1.逻辑运算符及其优先次序 (1)&& (逻辑与) 相当于其他语言中的AND (2)|| (逻辑或) 相当于其他语言中的OR (3)! (逻辑非) 相当于其他语言中的NOT 例:a&&b 若a,b为真,则a&&b为真。 a||b 若a,b之一为真,则a||b为真。 !a 若a为真,则!a为假。 优先次序: •!(非)->&&()->||() •逻辑运算符中的“&&”和“||”低于关系运算符, “!”高于算 术运算符
清华大学出版社 TSINGHUA UNIVERSITY PRESS 5.2逻辑运算符和逻辑表达式 2.逻辑表达式 用逻辑运算符将关系表达式或逻辑量连接起来的式子就 是逻辑表达式 逻辑表达式的值应该是一个逻辑量“真”或“假” 任何非零的数值被认作“真” 例:设a=4,b=5: !a的值为0 a&b的值为1 a|b的值为1 !a|b的值为1 4&&02的值为1 C程序设计(第三版) http:/ccf.tsinghua.edu.cn
C程序设计(第三版) 7 http://ccf.tsinghua.edu.cn 7 5.2 逻辑运算符和逻辑表达式 2.逻辑表达式 •用逻辑运算符将关系表达式或逻辑量连接起来的式子就 是逻辑表达式。 •逻辑表达式的值应该是一个逻辑量“真”或“假” 。 例:设a=4,b=5: !a的值为0 a&&b的值为1 a||b的值为1 !a||b的值为1 4&&0||2的值为1 任何非零的数值被认作“真
清华大学出版社 TSINGHUA UNIVERSITY PRESS 5.2逻辑运算符和逻辑表达式 例:5>3&83逻辑值为1小10逻辑值为1 4-1值为3 表达式值为01&&O逻辑值为083逻辑值为0 C程序设计(第三版) http:/ccf.tsinghua.edu.cn
C程序设计(第三版) 8 http://ccf.tsinghua.edu.cn 8 5.2 逻辑运算符和逻辑表达式 例:5>3&&83逻辑值为1 !0逻辑值为1 4-1值为3 表达式值为0
清华大学出版社 TSINGHUA UNIVERSITY PRESS 5.2逻辑运算符和逻辑表达式 在逻辑表达式的求解中,并不是所有的逻辑运算符都要被执行 )a&&b&c只有a为真时,才需要判断b的值,只有a和b都为真时, 才需要判断c的值。 (2)a||bc只要a为真,就不必判断b和c的值,只有a为假,才 判断b。a和b都为假才判断c 例:(m=a>b)&&(n=c>d) 当a=1,b=2,c=3,d=4,m和n的原值为1时,由于“a>b”的值 为0,因此m=0,而“n=c〉d”不被执行,因此n的值不是0而 仍保持原值1 C程序设计(第三版) http:/ccf.tsinghua.edu.cn
C程序设计(第三版) 9 http://ccf.tsinghua.edu.cn 9 5.2 逻辑运算符和逻辑表达式 在逻辑表达式的求解中,并不是所有的逻辑运算符都要被执行。 (1)a&&b&&c 只有a为真时,才需要判断b的值,只有a和b都为真时, 才需要判断c的值。 (2)a||b||c 只要a为真,就不必判断b和c的值,只有a为假,才 判断b。a和b都为假才判断c 例:(m=a>b)&&(n=c>d) 当a=1,b=2,c=3,d=4,m和n的原值为1时,由于“a>b”的值 为0,因此m=0,而“n=c>d”不被执行,因此n的值不是0而 仍保持原值1
清华大学出版社 TSINGHUA UNIVERSITY PRESS 5.2逻辑运算符和逻辑表达式 用逻辑表达式来表示闰年的条件 能被4整除,但不能被100整除。 能被4整除,又能被400整除。 答案 (year%04=0&&year%100=0lear%400=0 值为真(1)是闰年,否则为非闰年 C程序设计(第三版) http:/ccf.tsinghua.edu.cn 10
C程序设计(第三版) 10 http://ccf.tsinghua.edu.cn 10 5.2 逻辑运算符和逻辑表达式 用逻辑表达式来表示闰年的条件 •能被4整除,但不能被100整除。 •能被4整除,又能被400整除。 答 (year%4==0&&year%100!=0)||year%400==0 案 值为真(1)是闰年,否则为非闰年