第5讲结构化程序设计之流程控制语句.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第5讲结构化程序设计之流程控制语句
教学过程设计
一新课引入
默认情况下程序是顺序执行的。
当程序员在编写程序时并不知道在一次具体执行中执行者会做些什么时,他可以建立一个执行者用以作出判定的标准。例如:“朋友来了,端出好酒;豺狼来了,拿出猎枪。”。
有时程序的某部分可能需要执行多次。例如:在中草药炮制过程中,对某种药材要经过“九蒸九晒”才符合要求,这种重复必须指明重复的次数。有时重复执行程序的某部分不一定有明确的次数,但可以以是否达到某个目标作为重复终止的判断依据。例如:在把假分数化成真分数时,可以从分子中不断地减去分母,直到分子小于分母为止。
操作之间的关系——操作流程包括:顺序、选择、循环、转向(语言表达所需要的)。其中顺序、选择、循环是三种基本结构,已经证明,由这三种基本结构组成的程序结构,可以解决任何复杂的问题。由基本结构所构成的程序是结构化的程序,它不存在无规律的转向,只在本基本结构内才允许存在分支和向前或向后的跳转。软件工程提倡程序员书写结构化的程序。
C语言提供的流程控制语句有——描述“选择”的语句有:if语句、switch语句;描述“循环”的语句有:while语句、do-while语句、for语句;描述“转向”的语句有:goto语句、break语句、continue语句、return语句。为了达到直观形象、易于理解的效果,我们在进行结构化编程的同时可以辅助以一种图形工具——结构化的流程图。
本讲将主要介绍关于四种操作流程:顺序、选择、循环、转向的C语言描述、图形描述方法,以及由三种基本结构所构成的结构化的程序。
二讲授新课
1顺序
默认情况下程序是顺序执行的,所以C语言没有必要提供相关的描述语句来表示。
2选择
当程序员在编写程序时并不知道在一次具体执行中执行者会做些什么时,他可以建立一个执行者用以作出判定的标准。例如:“朋友来了,端出好酒;豺狼来了,拿出猎枪。”。
C语言提供的描述“选择”的语句有:if语句、switch语句。
if语句
1.if语句的两种形式
C语言提供了两种形式的if语句:
单分支选择if语句
if(“条件”表达式)
语句
说明:❶“条件”表达式的类型不限于逻辑表达式,可以是任意的数值类型(包括整型、实型、字符型、指针型数据)。
❷在if和else后面可以只有一个操作语句,也可以有多个操作语句,此时需用花括号“{}”将几个语句括起来成为一个复合语
句。
单分支选择if语句的流程图表示如下图所示。
单分支选择if语句的执行过程是:求“条件”表达式的值。如果“条件”
表达式的值为真,则执行“语句”,否
则不执行“语句”。
单分支选择if语句的功能是:判定所指定的条件是否满足,根据判定的结
果(真或假)决定是否执行给定的一组操作。
双分支选择if语句
if(“条件”表达式)
语句1
else
语句2
说明同上。
双分支选择if语句的流程图表示如下图所示。
双分支选择if语句的执行过程是:求“条件”表达式的值。如果“条件”
表达式的值为真,则执行“语句1”,否
则执行“语句2”。
双分支选择if语句的功能是:判定所指定的条件是否满足,根据判定的结
果(真或假)决定执行给定的两组操作其一。
2.if语句的嵌套
嵌套的if语句能实现多分支选择。
在if语句中又包含一个或多个if语句称为if语句的嵌套。例如:
if(“条件”表达式)
if(“条件”表达式)
语句1
else
语句2
else
if(“条件”表达式)
语句3
else
语句4
应当注意if与else默认的配对关系——else总是与其前面最近的if配对。因此最好使内嵌if语句也包含else部分,这样if与else的数目相同,从内层到外层一一对应,不致出错。如果if与else的数目不同,要改变这种默认的配对关系,可以加花括弧来确定配对关系。例如:
if(“条件”表达式)
{
if(“条件”表达式)
语句1
}
else
语句2
这时{ }限定了内嵌if语句的范围,因此else与第一个if配对。
常用的一种嵌套形式是:
if(“条件”表达式1)
语句1
else if(“条件”表达式2)
语句2
…
else if(“条件”表达式n)
语句n
else
语句n+1
说明同上。
其流程图表示如下图所示。
其执行过程是:求“条件”表达式1的值,如果“条件”表达式1的值为真,
则执行“语句1”,否则求“条件”表达式2的值,如果“条件”
表达式2的值为真,则执行“语句2”,否则……,依此类推。
当出现某个“条件”表达式的值为真时,则执行其对应的语句。
如果所有的“条件”表达式的值均为假,则执行“语句n+1”。
其功能是:多次判断。每判断一步,都分别分离出一些范围(这些范围已能用于作出相应的结论),逐步缩小判定的范围,直到不必再缩小判定的
范围就可以作出相应的结论。
switch语句
我们可以用嵌套的if语句来实现多分支选择,但如果分支越多,则多嵌套的if语句的层数就越多,程序冗长而且可读性降低。
某些时候,在使用嵌套的if语句时,所有的分支看起来都非常相似,因为它们都在对一个完全相同的“条件”表达式(“条件”表达式的类型只能为整型、字符型或枚举型)进行求值,惟一的区别是每个分支都将“条件”表达式的值与一个不同的值(也相应地只能为整型、字符型或枚举型)进行比较。例如:
if (day = = 0)
dayName = "Sunday";
else if (day = = 1)