第四篇选择结构程序设计.ppt

上传人:p** 文档编号:183128 上传时间:2023-03-30 格式:PPT 页数:50 大小:416.50KB
下载 相关 举报
第四篇选择结构程序设计.ppt_第1页
第1页 / 共50页
第四篇选择结构程序设计.ppt_第2页
第2页 / 共50页
第四篇选择结构程序设计.ppt_第3页
第3页 / 共50页
第四篇选择结构程序设计.ppt_第4页
第4页 / 共50页
第四篇选择结构程序设计.ppt_第5页
第5页 / 共50页
第四篇选择结构程序设计.ppt_第6页
第6页 / 共50页
第四篇选择结构程序设计.ppt_第7页
第7页 / 共50页
第四篇选择结构程序设计.ppt_第8页
第8页 / 共50页
第四篇选择结构程序设计.ppt_第9页
第9页 / 共50页
第四篇选择结构程序设计.ppt_第10页
第10页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第四篇选择结构程序设计.ppt》由会员分享,可在线阅读,更多相关《第四篇选择结构程序设计.ppt(50页珍藏版)》请在第壹文秘上搜索。

1、第四章 选择结构程序设计本章要点本章要点内容要点提示内容要点提示:什么是算法?算法是如何描述的?什么是算法?算法是如何描述的?程序的三种基本控制结构是什么?程序的三种基本控制结构是什么?执行流程怎样?执行流程怎样?如何用关系表达式和逻辑表达式表如何用关系表达式和逻辑表达式表示简单条件、复杂条件?示简单条件、复杂条件?if语句有几种形式?条件如何判断?语句有几种形式?条件如何判断?switch语句一般形式如何?执行过语句一般形式如何?执行过程怎样?程怎样?本章内容4.1 算法及其描述方法算法及其描述方法 4.2 关系运算与逻辑运算关系运算与逻辑运算4.3 if语句语句4.4 条件运算符与条件表达

2、式条件运算符与条件表达式4.5 switch语句语句4.6 选择结构程序举例选择结构程序举例 *4.7 if语句嵌套语句嵌套 4.1 算法及其描述方法算法及其描述方法 算法:算法: 把为解决一个问题而采取的方法和步骤称为把为解决一个问题而采取的方法和步骤称为“算法算法”。 有三种控制结构:有三种控制结构: 顺序结构、选择结构和循环结构。顺序结构、选择结构和循环结构。顺序结构:计算机自动按照语句编写的顺序一句一句执顺序结构:计算机自动按照语句编写的顺序一句一句执行语句。行语句。选择结构:也称分支结构。根据输入的数据或中间结果选择结构:也称分支结构。根据输入的数据或中间结果的情况,选择一组语句执行

3、。的情况,选择一组语句执行。循环结构:又称重复结构,即当给定条件满足时,反复循环结构:又称重复结构,即当给定条件满足时,反复执行某一部分语句。执行某一部分语句。4.1 算法及其描述方法算法及其描述方法算法的表示方法算法的表示方法1.自然语言与伪代码表示方法自然语言与伪代码表示方法 (1)自然语言表示法)自然语言表示法将解决问题的步骤用自然语言表示。将解决问题的步骤用自然语言表示。【例【例4.1】计算火车行李托运费。输入行李重量】计算火车行李托运费。输入行李重量,计算并输出托运费。计算并输出托运费。 收费标准:收费标准: (1)不超过不超过50公斤,每公斤公斤,每公斤0.35元;元; (2)超过

4、超过50公斤,其中公斤,其中50公斤同公斤同(1),超过部,超过部分每公斤分每公斤0.50元。元。4.1 算法及其描述方法算法及其描述方法算法:算法:步骤步骤1: 输入行李的重量输入行李的重量步骤步骤2:根据行李的重量计算费用:根据行李的重量计算费用若重量若重量 payweight*0.35= pay结束结束不成立不成立成立成立4.1 算法及其描述方法算法及其描述方法3 N-S流程图表示方法流程图表示方法(1)顺序结构)顺序结构(2)选择结构)选择结构(3)循环结构)循环结构 当型循环当型循环 直到型循环直到型循环 ABpAB成立成立不成立不成立 当当p成立成立A 直到直到p成立成立A4.1

5、算法及其描述方法算法及其描述方法用用N-S流程图表示例流程图表示例4.1的算法的算法 输入输入weightweight50成立成立不成立不成立pay=weight*0.35pay=50*0.35+(weight-50)*0.5输出输出 pay4.2 关系运算与逻辑运算关系运算与逻辑运算关系运算关系运算1.关系运算符关系运算符 (大于)(大于) = (大于或等于大于或等于) = (等于)(等于) != (不等于)(不等于)优先级:优先级: 高高 低低 , =, !=赋值运算符赋值运算符算术运算符算术运算符4.2 关系运算与逻辑运算关系运算与逻辑运算2.关系表达式关系表达式一般形式为:表达式关系运

6、算符表达式一般形式为:表达式关系运算符表达式合法的关系表达式:合法的关系表达式: ab a+bc-d (a=3)=b (ab)=(bc) 关系表达式的值:关系表达式的值: 逻辑值逻辑值 “真真” “1”表示表示 “假假” “0”表示表示4.2 关系运算与逻辑运算关系运算与逻辑运算例如:假设例如:假设num1=3,num2=4,num3=5,则:,则: (1)num1num2的值的值=0。 (2)(num1num2)!=num3的值的值=1。 思考:改变思考:改变num1或或num2的值,会影响整个表达式的值的值,会影响整个表达式的值吗?吗? 注意:关系表达式的值,还可以参与其它种类的运算注意:

7、关系表达式的值,还可以参与其它种类的运算 (为什么?)为什么?) (4)(num1=0)&(x10) (x5) !(x=0) (year%4=0&year%100!=0)|(year%400=0) 逻辑表达式的值逻辑表达式的值:例如:例如:num=12, 则:则: !num的值为的值为 0; num=1 num31的值为的值为 1。数值与逻辑量的对应:数值与逻辑量的对应: (1)逻辑值逻辑值 数值数值 真真 1 假假 0 (2)数值数值 逻辑值逻辑值 0 假假 非非0 真真注意注意:1. 5x5&x=5 y10写成写成 y=103. =与与=的完全不同的完全不同如如 a=10; if( a=2

8、0) x=x+1; else y=y+14.关系表达式和逻辑表达式的运算结果得到一关系表达式和逻辑表达式的运算结果得到一个逻辑值:真或者假。个逻辑值:真或者假。 C语言中没有专门的逻辑值,也没有专门语言中没有专门的逻辑值,也没有专门的逻辑变量用零表示假,用非零值表示真的逻辑变量用零表示假,用非零值表示真-非零非零即为真即为真!4.3 if语句语句例例4.1的程序清单的程序清单void main() float weight,pay; printf( weight= ); scanf( %f ,&weight); if (weight=90) printf(“Good! ”); printf(“

9、Your score is %d.n”,score); if语句的执行过程是:语句的执行过程是:4.3 if语句语句2. if-else语句语句语句的一般形式为:语句的一般形式为:if(表达式)(表达式) 语句语句1else 语句语句2假假真真表达式表达式语句语句1语句语句2假设假设x的值是的值是5,y的的值是值是7,这段程序执,这段程序执行后会输出:行后会输出:?例如: if(xn2) max=n1; else max=n2; if ( n3max) max=n3; printf( max=%.2fn ,max); 改为:改为: max=n1; if(n2max) max=n2; if(n3

10、max) max=n3;真真假假假假真真开始开始输入输入n1,n2,n3n2maxmax=n1max=n2n3maxmax=n3输出输出 max结束结束这种方法即擂台法,对从这种方法即擂台法,对从3个以上的数中找最大数的个以上的数中找最大数的处理,非常有效。处理,非常有效。例题:输入一个数,判断它是否能被整除,若能被例题:输入一个数,判断它是否能被整除,若能被整除,打印;不能被整除,打印整除,打印;不能被整除,打印#include void main( ) int n; printf(“input n:”); scanf(“%d”,&n);if(n%3=0)printf(“n=%d YESn”

11、,n);else printf(“n=%d NOn”,n); 程序有错吗?程序有错吗??4.3 if语句语句多分支多分支if语句语句当当if-else语句中的语句语句中的语句2是另一条是另一条if语句时,就构成了多分支语句时,就构成了多分支if语句。语句。语句的一般形式为:语句的一般形式为:if(表达式表达式1) 语句语句1else if(表达式表达式2) 语句语句2else if(表达式表达式3) 语句语句3 . . .else if(表达式表达式n) 语句语句nelse 语句语句n+1表达式表达式1 1表达式表达式2表达式表达式3表达式表达式4表达式表达式5语句语句1语句语句2语句语句3语

12、句语句4语句语句6语句语句5真真假假假假假假假假假假真真真真真真真真执行过程:执行过程:4.3 if语句语句【例【例4.34.3】求如下函数】求如下函数式式y y的值。的值。 4.3 if语句语句【例【例4.34.3】求如下函数】求如下函数式式y y的值。的值。 程序代码:程序代码:#include #include void main() double x,y; printf(“Enter x:”); scanf(“%lf”,&x); if(x=2) y=x*(x-3)+2.5; else if(xb)?a:b 等价于等价于 if (ab) max=a; else max=b; 条件表达式条

13、件表达式一般形式为:一般形式为:表达式表达式1?表达式?表达式2:表达式:表达式3 求值过程:求值过程:表达式表达式1计算表达式计算表达式2,取其值作为条件取其值作为条件表达式的值表达式的值 计算表达式计算表达式3,取其值作为条件取其值作为条件表达式的值表达式的值 真假4.4 条件运算符与条件表达式条件运算符与条件表达式【例【例 4.4】 从键盘上输入一个字符,如果它是大写字从键盘上输入一个字符,如果它是大写字母,则把它转换成小写字母输出;否则,直接输出。母,则把它转换成小写字母输出;否则,直接输出。void main() char ch; printf(Input a character:

14、); scanf(%c,&ch); printf(ch=%cn,ch);4.5 switch语句语句在在C语言中,用语言中,用switch语句描述多路按值选择结构。语句描述多路按值选择结构。switch语句的一般形式为:语句的一般形式为:switch(表达式表达式) case 常量表达式常量表达式1:语句:语句1 case 常量表达式常量表达式2:语句:语句2 . . case 常量表达式常量表达式n:语句:语句n default: 语句语句n+1表达表达式式语句语句1语句语句3语句语句2语句语句n+1值值1值值2值值3值值n+1执行过程:执行过程:4.5 switch语句语句 说明:说明:(

15、1)switch后面括号内的表达式的类型只限于是后面括号内的表达式的类型只限于是整型或整型或字符型或枚举型字符型或枚举型。(2)各子句中包含的语句可以是任意条合法的)各子句中包含的语句可以是任意条合法的C语言语句,语言语句,也可以没有语句。也可以没有语句。(3)default子句可以省略,若不省略,至多出现一次。子句可以省略,若不省略,至多出现一次。(4)各个)各个case和和default的出现次序不影响执行结果。习的出现次序不影响执行结果。习惯上总是将惯上总是将default子句写在所有子句写在所有case子句之后,有必子句之后,有必要也可以写在某个要也可以写在某个case子句之前。子句之

16、前。(5)多个)多个case子句可以共用一组执行语句。子句可以共用一组执行语句。4.5 switch语句语句 例如:执行下面这段代码时,若例如:执行下面这段代码时,若gread的值是的值是B,结果?,结果? switch(gread) case A:printf(GREAT!n); case B:printf(GOOD!n); case C:printf(OK!n); case D:printf(NO!n); default:printf(ERROR!n); 程序执行将输出:程序执行将输出:GOOD!OK!NO!ERROR!如果想只执行某个子句中的语句,排斥其它的情况,最常如果想只执行某个子句中的语句,排斥其它的情况,最常用的方法是使用用的方法是使用break语句,每个子句都以语句,每个子句都以break语句结语句结束。束。在在switch语句中,执行语句中,执行break 语句将跳出语句将跳出switch语句,使语句,使控制转向控制转向switch语句的后继语句。语句的后继语句。 为什么为什么错了错了?4.5 switch语句语句【例【例4.54.5】输入两个操作数及一个运算符,输出

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > C/C++资料

copyright@ 2008-2023 1wenmi网站版权所有

经营许可证编号:宁ICP备2022001189号-1

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!