C语言程序设计 第5章选择结构程序设计
1 第5章 选择结构程序设计 C 语言程序设计
提出问题 向氯: 如何根据收入,确定他的纳税比例及纳税额? a 问氨2 如何根据学生的分数判断是否及格? ●自然语言:如果那么 否则 9。9 ●C语言:分支语句 20212
2 2021/2/24 提出问题: ⚫ 自然语言:如果… 那么… 否则… ⚫ C语言:分支语句 问题1: 如何根据收入,确定他的纳税比例及纳税额? 问题2 如何根据学生的分数判断是否及格?
本章主要内容 ●51关系运算符和关系表达式 52逻辑运算符和逻辑表达式 ●53语句 54 switch语句 55程序举例 20212
3 2021/2/24 本章主要内容 ⚫ 5.1 关系运算符和关系表达式 ⚫ 5.2 逻辑运算符和逻辑表达式 ⚫ 5.3 if语句 ⚫ 5.4 switch语句 ⚫ 5.5 程序举例
51关系运算符和关系表达式 J关系运算符及其优先次序 (小于) 2(大于) 优先级相同(高) 4.>(大于或等于) 5=(等于) 6.=(不等于) 优先级相同(低) 说明: 关系运算符的优先纸低于算术运算符 关系运算符的优先级高于值运算符 20212
4 2021/2/24 5.1 关系运算符和关系表达式 1.关系运算符及其优先次序 1. (大于) 4. >= (大于或等于) 5. == (等于) 6. != (不等于) 优先级相同(高) 优先级相同(低) 说明: 关系运算符的优先级低于算术运算符 关系运算符的优先级高于赋值运算符
51关系运算符和关系表达式 2美系表达式 用关系运算符将两个表达式(可以是算术表达式或 关系表达式,逻辑表达式,赋值表达式,字符表达式 接起来的式子,称关系表达式 例:>b,÷b>bc,(a=3)>(b=5 c语言中没有专用 的逻辑值,1代表 真,0代表假 关系表达式的值是一个逻辑值 例:美系表达式”a>b的为“”,表达式的值为1。 2021/22
5 2021/2/24 5.1 关系运算符和关系表达式 2.关系表达式 • 用关系运算符将两个表达式(可以是算术表达式或 关系表达式,逻辑表达式,赋值表达式,字符表达式) 接起来的式子,称关系表达式 例:a>b,a+b>b+c,(a=3)>(b=5),’a’b)>(bb”的值为“真”,表达式的值为1。 C语言中没有专用 的逻辑值,1代表 真,0代表假
52逻辑运算符和逻辑表达式 逻辑运算将及其优先次序 )&&(辑与)相当于其他语言中的AND 2川(辑可3)相当于其他语言中的oR 3)!(辑非相当于其他语言中的NoT 例:a&&b着a2b为真,则a&&b为真。 ab著ab之一为真,则ab为真。 !a着a为真,则a为假 优先次序 !(非)→&&0->|Q 逻辑运算符中的“&&”和“|低于关系运算符,“P高于算 术运算符 20212
6 2021/2/24 5.2 逻辑运算符和逻辑表达式 1.逻辑运算符及其优先次序 (1)&& (逻辑与) 相当于其他语言中的AND (2)|| (逻辑或) 相当于其他语言中的OR (3)! (逻辑非) 相当于其他语言中的NOT 例:a&&b 若a,b为真,则a&&b为真。 a||b 若a,b之一为真,则a||b为真。 !a 若a为真,则!a为假。 优先次序: •!(非)->&&()->||() •逻辑运算符中的“&&”和“||”低于关系运算符,“!”高于算 术运算符
52逻辑运算符和逻辑表达式 逻辑表达式 用逻辑运算符将关系表达式逻辑量连接起来的式子 就是逻辑表达式。 辑表达式的值应该是一个逻辑量“真”或“假” 任何非零的数值被认作“真” 例:设a=4,b=5: a的值为0 a&&b的值为1 ab的值为1 ab的值为1 4&&0‖2的值为1 2021/2/24
7 2021/2/24 5.2 逻辑运算符和逻辑表达式 2.逻辑表达式 •用逻辑运算符将关系表达式或逻辑量连接起来的式子 就是逻辑表达式。 •逻辑表达式的值应该是一个逻辑量“真”或“假”。 例:设a=4,b=5: !a的值为0 a&&b的值为1 a||b的值为1 !a||b的值为1 4&&0||2的值为1 任何非零的数值被认作“真
52逻辑运算符和逻辑表达式 例 5>388840 自左向右运算 53逻辑值为1!0逻辑值为1 4-1值为3 表达式值为01&80逻辑值为08-3逻辑值为0 20212
8 2021/2/24 5.2 逻辑运算符和逻辑表达式 例:5>3&&83逻辑值为1 !0逻辑值为1 4-1值为3 表达式值为0
52逻辑运算符和逻辑表达式 在逻辑表达式的求解中,并不是所有的逻辑运算符都要被执行。 (1)a&&b&&c只有a为真时,才需要判断b的值,只有a和b都为 真时,才需要判断c的值。 (2)叫b|c只要a为真,就不必判断b和c的值,只有a为假,才 判断b。a和b都为假才判断c 例:(m=a>b)&&(n=c>d) 当a=1,b=2c=3d=4,m和n的原值为1时,由于“a>b的 为0,因此m=0,而“n=c>d不被执行,因此n的值不 仍保持原值1 2021/2/24
9 2021/2/24 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
52逻辑运算符和逻辑表达式 用逻辑表达式来表示闫年的条件 能被4整除,但不能被100整除。 能被4整除,又能被400除。 答(ear%4==08&year7%100170) lyear%400=0 案值为真(1)是闫年,否则为非闫年。 2021/2/
10 2021/2/24 5.2 逻辑运算符和逻辑表达式 用逻辑表达式来表示闰年的条件 •能被4整除,但不能被100整除。 •能被4整除,又能被400整除。 答 (year%4==0&&year%100!=0)||year%400==0 案 值为真(1)是闰年,否则为非闰年