【教学课件】第四章程序流程控制语句.ppt
《【教学课件】第四章程序流程控制语句.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第四章程序流程控制语句.ppt(75页珍藏版)》请在三一办公上搜索。
1、,程序流程控制语句,第 2 页,第四章 程序流程控制语句,C语言的基本语句 上机调试程序的方法 基本的程序设计方法 输出简单图形 穷举法,本 章 要 点,第 3 页,第四章 程序流程控制语句,第一节 C语言语句概述第四章第二节 注释语句第四章第三节 复合语句第四章第四节 选择语句第五章第五节 循环语句第六章第六节 转移语句第六章第七节 简单应用综合举例,第 4 页,4-1 C语言语句概述,按照C语言语句的作用分类:说明语句注释语句程序流程控制语句,声明变量名称、数据类型及其存储属性的说明性语句,编程者对程序本身的解释,是“可执行”的语句,构成程序的主体,第 5 页,4-1 C语言语句概述-语句
2、分类,选择语句,if-elseswitch,forwhiledo-while,循环语句,转移语句,breakcontinuegotoreturn,标号语句,表达式语句,casedefault标号,赋值表达式+分号(;),第 6 页,4-1 C语言语句概述-语句分类,按照C语言语句的功能分类:控制语句 函数调用语句 表达式语句 空语句 复合语句,控制程序的走向(流程),由一个函数调用加一个分号,赋值表达式加分号,只有一个分号;,一对 括起来的语句序列,第 7 页,4-1 C语言语句概述-简单实例,#include main()/*简单程序实例*/int a=10,b=20,c;if(ba)c=a
3、+b;printf(”%dn”,c);else;,控制语句,表达式语句,复合语句,函数调用语句,空语句,说明语句,注释语句,C的语句以分号(;)结束,第 8 页,4-2 注释语句,注释语句格式以“/*”开头、以“*/”结尾的说明性文字说明(注释)信息可以是中文,也可以是英文注释语句的目的备忘作用增加程序的可读性,便于编程者和其它程序阅读者理解程序注释语句的使用方法 可以注释程序的功能、变量的含义、函数间接口关系、编程使用的算法和技巧等信息,第 9 页,4-2 注释语句-实例,实例#include stdio.hmain()printf(Hello!n);/*printf(Thanks!n);*
4、/合法的注释x=y+5;/*x is integer number,x是整型*/x=10+/*合法的注释但不是好的注释*/5;不合法的注释swi/*不能在标识符中间插入注释*/tch(c)./*this is an outer comment x=y/a;/*注释不允许嵌套*/*/,第 10 页,4-3 复合语句,复合语句格式 用 和 括起来的若干合法的C语句。复合语句的目的语法上等价于单一语句。因此在语言中,凡是可以使用单一语句的地方,均可使用复合语句。明确层次关系复合语句的使用方法复合语句允许嵌套,且嵌套层次没有限制对于复合语句,右花括号“”的后面不必再跟一个分号(;),第 11 页,4-
5、3 复合语句-实例,例C3_3001.C:判断输入整数的正负性和奇偶性。1.main()2.int x;3.printf(Enter a integer:);scanf(%d,18.,第 12 页,4-4 选择语句,提出问题,二重分支的条件语句 if多重分支的条件语句 switch,自然语言:如果 那么 否则C语言:分支语句,第 13 页,4-4-1 选择语句-if语句,if语句格式 格式1:if(表达式)语句;格式2:if(表达式)语句1;else 语句2;if语句的执行流程流程1:流程2:,第 14 页,4-4-1 选择语句-if语句,例C3_4101.C:求a和b两数中较大的一个。#in
6、clude main()/*程序功能:求a和b的最大值*/int a,b,max;printf(Input a and b=);scanf(%d%d,例C3_4101,if语句中进行条件判断的“表达式”必须用()括起来且不可省略,第 15 页,4-4-1 选择语句-if语句,例C3_4101.C:求a和b两数中较大的一个。#include main()/*程序功能:求a和b的最大值*/int a,b,max;printf(Input a and b=);scanf(%d%d,例C3_41011,以上两个程序等价,第 16 页,4-4-1 选择语句-if语句,例C3_4102.C:从键盘输入被除
7、数a和除数b,求商。main()int a,b;printf(Enter two numbers:);scanf(%d%d,if(b)printf(%dn,a/b);else printf(”error.n);等价!,第 17 页,4-4-1 选择语句-if语句,if语句嵌套义:在if语句的“语句1”或“语句2”中又包含着if语句例C3_4103.C:比较两个整数的之间的关系(大小/相等)。#include main()int x,y;printf(Enter integer X and Y:);scanf(%d%d,例C3_4103,说明:在if-else语句中,一般采用“缩进”的书写形式来
8、表示“语句1”或“语句2”所属的层次。注意:缩进仅是一种书写的形式,不具有逻辑意义,第 18 页,4-4-1 选择语句-if语句,嵌套if-else语句的配对关系 例:if(ab)/*1*/if(ac)/*2*/if(ad)flag=1;/*3*/else flag=2;/*4*/else flag=3;/*5*/问题:第四行和第五行的else语句与哪一个if语句相匹配呢?分析:匹配方案可以有很多种,(2-4,1-5),(3-4,2-5),(1-4,),匹配规则:在嵌套的if-else语句中,else子句总是与上面的、离它最近的、且在同一复合语句中还没有配对的if子语配对。,第 19 页,4-
9、4-1 选择语句-if语句,1、if(ab)if(ac)if(ad)flag=1;else flag=2;else flag=3;程序含义:当 c=ab 时,flag=32、if(ab)if(ac)if(ad)flag=1;else flag=2;/*以上是一个完整的复合语句*/else flag=3;程序含义:当 a=b 时,flag=3,第 20 页,4-4-1 选择语句-if语句,3、if(a=b)if(b=c)printf(a=b=cn);else printf(”a!=bn”);尽管书写格式如此,真实的正确的含义是:if(a=b)if(b=c)printf(a=b=cn);else
10、printf(a!=bn”);通过加,可以改变配对关系:if(a=b)if(b=c)printf(a=b=cn);else printf(”a!=bn”);,第 21 页,4-4-1 选择语句-if语句,例C3_4104.C:已知银行整存整取存款月息利率分别为:一年期:0.63%二年期:0.66%三年期:0.69%五年期:0.75%八年期:0.84%其它:0 要求输入存钱的本金和期限,求到期时利息与本金合计。银行到期利息计算公式:利息本金月息利率12存款年限 程序中应当根据存款的年限确定利率,第 22 页,4-4-1 选择语句-if语句,#include main()int year;floa
11、t money,rate,total;/*本金,月利率,本利合计*/printf(Input money and year=?);scanf(%f%d,第 23 页,4-4-1 选择语句-if语句,采用if-else if结构改写。#include main()int year;float money,rate,total;/*本金,月利率,本利合计*/printf(Input money and year=?);scanf(%f%d,第 24 页,4-4-1 选择语句-if语句,例C3_4105.C:通过键盘输入字符,将输入的字符分为控制、数字、大写字母、小写字母和其他字符等五类。ASCII
12、码表中的前32个字符为控制字符,09为数字,AZ为大写字母,az为小写字母,其它。#include main()char c;printf(Enter a character:);c=getch();if(c=0,例C3_4105,第 25 页,4-4-1 选择语句-if语句,if语句与条件运算的关系例:求一个数的绝对值,if(y0)x=-y;elsex=y;,(y0)?x=-y:x=y;,等价,等价,x=(y0)?y:y;,说明:if else可以完成与条件运算符(?:)完全相同的任务,并且可以进行相应的转换。,第 26 页,4-4-1 选择语句-if语句,if语句与条件运算的区别:条件运算
13、符形式比较简单,有较强的灵活性,可以替代部分if语句。例:if(cans=1)printf(”You need 1 can of paint.”);else printf(”You need 2 cans of paint.”);转换:(cans=1)?printf(”You need 1 can of paint.”):printf(”You need 2 cans of paint.”);转换:printf(cans=1?”You need 1 can of paint.”:”You need 2 cans of paint.”);转换:printf(”You need%d%s of pa
14、int.”,cans,cans=1?”can”:”cans”);可以在函数中方便地使用条件运算,第 27 页,4-4-2 选择语句-switch语句,switch语句格式 switch(表达式)case 常量1:语句序列1 break;case 常量2:语句序列2 break;default:语句序列n+1,第 28 页,4-4-2 选择语句-switch语句,switch(number)case 1:statement 1;break;case 2:statement 2;break;case 3:statement 3;break;default:statement 4;statement
15、 5;,当number的值为2时,第 29 页,4-4-2 选择语句-switch语句,switch语句使用注意事项1.switch语句与if语句不同,仅能判断一种关系:是否恒等。2.switch语句中case子句的常量可以是整型常量、字符型常量、枚举型数据,或是整型常量表达式,不允许是变量。3.在同一个switch中,case子句的常量不能相同;在嵌套的switch语句中,不同层次的switch之间,可有相同的常量。4.default子句可以省略。5.case 和 default 子句只能在switch语句中使用,且 case和 default 只起标号作用,可出现在switch中的任何位置
16、。6.case 和 default 子句后面的语句序列允许由多个可执行语句组成,且不必用“”括起来,也可以为空语句。7.switch语句中可省略break语句,但省略后会改变流程。,第 30 页,4-4-2 选择语句-switch语句,例C3_4104.C:计算存款本利。采用switch改写。#include main()int year;float money,rate,total;/*本金,月利率,本利合计*/printf(Input money and year=?);scanf(%f%d,第 31 页,4-4-2 选择语句-switch语句,例C3_4203.C:输入year年份和月m
17、onth,求该月天数。如何判断闰年?闰年:能够被4整除且不能被100整除的年份 或 能够被400整除的年份 例如:1996年、1980年是闰年 1970年、1900年是平年 2000年是闰年判断闰年的C语言公式year%4=0&year%100!=0|year%400=0 当year=1996时,结果为1 当year=1997时,结果为0 当year=1900时,结果为0 当year=2000时,结果为1,若为闰年:结果为1若为平年:结果为0,第 32 页,4-4-2 选择语句-switch语句,main()int year,month,days;scanf(%d%d,省略case子句之后的语
18、句,第 33 页,4-4-2 选择语句-switch语句,省略break语句 例如:某程序段中,error是进行出错处理的函数。flag=-1;/*error marker*/switch(i)case 1:case 2:case 3:flag=0;/*no error*/break;case 4:flag=1;/*error#1*/case 5:error(flag);/*error process*/break;default:flag=2;/*other error*/*假定函数error是出错处理函数*/当 i=1,2,3 时:flag=0;退出。当 i=5 时:flag=-1;调用e
19、rorr(flag);退出。当 i=4 时:flag=1;调用 error(flag);退出。,第 34 页,4-4-2 选择语句-switch语句,例C3_4202.C:请编写一个程序计算表达式:data1 op data2的值。main()float data1,data2;char op;/*定义操作数、操作符变量*/printf(Enter your expression:);scanf(”%f%c%f”,例C3_4202,第 35 页,4-5 循环语句,提出问题,?,提问:从键盘上输入10个整数并求和,怎么编程?回答:在程序中写入10个scanf()语句。提问:从键盘上输入500个整
20、数并求和,怎么编程?回答:这个,嗯?不会让我写500个.,老师:让我们换一个角度来看待这些问题,以上问题的实质是:将scanf函数重复执行N遍。学生:对!好象是这么回事.老师:我们可以引出一个概念“循环”,简单而言:循环就是不断反复地执行同一段程序。学生:这就是我们今天要学的新东西?,第 36 页,4-5 循环语句,循环 反复执行同一段程序,直到满足一定的条件后才停止执行该段程序。C语言中控制循环的语句:while for do-while,第 37 页,4-5-1 while语句,while语句格式while(表达式)语句;说明:语句部分可以是简单语句,也可以是复合语句。while语句的执行
21、流程,第 38 页,4-5-1 while语句-实例,例C3_5101.C 从键盘输入10个整数,求这10个整数的和。#include main()int count,num,total;/*count:计数器,num:输入的整数*/count=0;total=0;/*total:存放累加和*/while(count10)/*循环控制条件*/count+;/*循环体*/printf(Enter the No.%d=,count);scanf(%d,例C3_5101,第 39 页,4-5-1 while语句-实例,例:分析程序的运行结果#include main()int n=0;while(n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第四 章程 流程 控制 语句
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5665202.html