第5章选结构程序俊计
第5章 选择结构程序设计
主要内容:关系运算符和关系表达式 逻辑运算符和逻辑表达式 if-else(重点、难点) swIteh 条件运算符和条件表达式(了解) 根据选择结构的组成特点,我们在分析问题时着重 明确以下两点: 1)条件是什么 2)条件成立和不成立时分别执行什么操作
主要内容:关系运算符和关系表达式 逻辑运算符和逻辑表达式 if - else(重点、难点) switch 条件运算符和条件表达式(了解) 根据选择结构的组成特点,我们在分析问题时着重 明确以下两点: 1)条件是什 么。 2)条件成立和不成立时分别执行什么操作
5.1关系运算符和关系表达式 简单条件用关系表达式来表示 例51判断一个整数n是奇数还是偶数(设n 由用户输入) 分析:第一步,输入整数n。第二步,判断: 若条件“n%2等于0“成立,则输出“n为偶 数“;否则输出“n为奇数
◼简单条件用关系表达式来表示 ◼例5.1 判断一个整数n是奇数还是偶数(设n 由用户输入) 分析:第一步,输入整数n。第二步,判断: 若条件“n%2等于0“成立,则输出“n为偶 数“;否则输出“n为奇数“。 5.1关系运算符和关系表达式
main i int n; printf(n enter int n:” scanf(“%d”,&m); f(n%2=0) printf(“"in% d is even number“,n); 开始 else 输入n printf(n %d is odd number,, n);) 2为0 是偶数 是奇数 结束
main() { int n; printf(“\n enter int n:”); scanf(“%d”,&n); if( n%2==0) printf(“\n %d is even number“, n); else printf(“\n %d is odd number”, n);} 开始 输入n n%2为0 是偶数 是奇数 结束 输入n
例52输入任一考生的考号及成绩,判断其是否能上大学。 (设分数线为600,若能上,则输出“ success,否则输 出” failure”) 分析:第二步是选择结构,条件是“ score大于等于600”, main( iint no; float score: printf(inenter no, score: ) scanf(" %od %of,, &no, &score) if(score>=600) printf("in %d Success", no); else printf("n %d failure. no);
◼ 例5.2输入任一考生的考号及成绩,判断其是否能上大学。 (设分数线为600,若能上,则输出“success“,否则输 出”failure”)。 分析:第二步是选择结构,条件是“score大于等于600”, main() { int no; float score; printf(“\n enter no,score:”); scanf(“%d%f”,&no,&score); if( score>=600) printf(“\n %d :success”,no); else printf(“\n %d :failure.”,no); }
关系表达式的值:若条件满足,则关系表达式的值为ture(1 否则,关系表达式的值为 false(0) 1关系运算符 例如下列关系表达式 a>b 表示条件“a大于b“, !=0 表示条件“x等于0“ a+b关系运算符>赋值运算符 且 高于 3.结合性:自左向右(一般很少连用) 如:a>bb)<c f=a<g+1表示f=(a<(g+1
◼ 关系表达式的值:若条件满足,则关系表达式的值为ture( 1); 否则,关系表达式的值为false(0)。 1.关系运算符: >= == != 例如下列关系表达式: a>b 表示条件 “a 大于 b“, x!=0 表示条件 “x 等于 0“, a+b 关系运算符> 赋值运算符 且 >= 高于 == != 3. 结合性: 自左向右(一般很少连用)。 如: a>bb)<c f=a<g+1 表示 f=(a<(g+1) )
口特别提示:关系运算符“=”与赋值运算符“=” 不同。 比较:k=1与k=1 ■特别提示:表达式a+b>d>c也是合法的关系表达 式,但在实际应用中很少使用;因为它不能表示 a+b大于c且大于d。 问题: 如何表示:a<x<b 0<y<10等条件
◼ 特别提示:关系运算符“==”与赋值运算符“=” 不同。 比较 : k=1 与k==1 ◼ 特别提示:表达式 a+b>d>c也是合法的关系表达 式,但在实际应用中很少使用;因为它不能表示: a+b大于c且大于d。 ◼ 问题: 如何表示:a < x < b 0<y<10 等条件
52逻辑运算符和逻辑表达式 复杂条件可用逻辑表达式来描述 例53判断当前温度是否满足观赏鱼正常生活需要的温度 15~20摄氏度)。(设当前温度由用户输入)。 main i int temperature printf(n enter the temperature ) scanf(od, &temperature) if( temperature=15&& temperature20)/条件*/ printf(n normal”); else printi( n not normal.”)
5.2 逻辑运算符和逻辑表达式 ◼ 复杂条件可用逻辑表达式来描述 ◼ 例5.3 判断当前温度是否满足观赏鱼正常生活需要的温度 (15~20摄氏度)。(设当前温度由用户输入)。 main() { int temperature; printf(“\n enter the temperature :”); scanf(“%d”, &temperature); if(temperature>=15 &&temperature<=20) /*条件*/ printf(“\n normal .”); else printf((“\n not normal.”); }
1.逻辑运算符 && (其含义分别是:and与、or或、 negative非) 逻辑运算规则(见P89) 由表可得逻辑运算的规律: (1)任何值与0相与,结果为0 (2)任何值与1相或,结果为1 (3)非运算将“非0值”变为0,将0变为1 如:intx=0,y=5;则!x->1 0 x&&y->0 X|y->1 特别提示:()等价于i(x0
1. 逻辑运算符 && || ! (其含义分别是:and与、or 或 、negative 非) 逻辑运算规则(见P89) 由表可得逻辑运算的规律: (1)任何值与0相与,结果为0 (2)任何值与1相或,结果为1 (3)非运算将“非0值”变为0, 将0变为1 如: int x=0, y=5 ; 则 !x->1 、 !y->0 x&&y -> 0 x || y ->1 特别提示 : if( !x ) 等价于 if( x==0)
2.逻辑表达式:由逻辑运算符将一个或多个表达式连 接起来的式子。比如: I)"a和b中只有一个为0"的逻辑表达式为 a+b!=0&&ab==0 2)某英语专业的招生条件“总分 total)超过分数线 (600)并且英语成绩(core)不低于85分“,该条 件的逻辑表达式为: totalb600&&score>=85 3判断某年是润年应满足以下两个条件之一:该年能 被4整除但不能被100整除,或该年能被400整除。 该条件对应的逻辑表达式为 ye%40yenr%100=0yenr%400=0
2. 逻辑表达式: 由逻辑运算符将一个或多个表达式连 接起来的式子。比如: 1)"a和b中只有一个为0"的逻辑表达式为: a+b!=0&&a*b==0 2)某英语专业的招生条件“总分(total )超过分数线 (600)并且英语成绩(score)不低于85分“,该条 件的逻辑表达式为: total>600&&score>=85 3)判断某年是润年应满足以下两个条件之一:该年能 被4整除但不能被100整除,或该年能被400整除。 该条件对应的逻辑表达式为: year%4==0&&year%100!=0 || year%400==0