第5讲结构化程序设计之流程控制语句剖析.doc
文本预览下载声明
第5讲 结构化程序设计之流程控制语句
教学过程设计
新课引入
默认情况下程序是顺序执行的。
当程序员在编写程序时并不知道在一次具体执行中执行者会做些什么时,他可以建立一个执行者用以作出判定的标准。例如:“朋友来了,端出好酒;豺狼来了,拿出猎枪。”。
有时程序的某部分可能需要执行多次。例如:在中草药炮制过程中,对某种药材要经过“九蒸九晒”才符合要求,这种重复必须指明重复的次数。有时重复执行程序的某部分不一定有明确的次数,但可以以是否达到某个目标作为重复终止的判断依据。例如:在把假分数化成真分数时,可以从分子中不断地减去分母,直到分子小于分母为止。
操作之间的关系——操作流程包括:顺序、选择、循环、转向(语言表达所需要的)。其中顺序、选择、循环是三种基本结构,已经证明,由三种基本结构组成的结构,可以解决任何复杂的问题。由基本结构所构成的结构化程序,它不存在无规律的转向,只在本基本结构内才允许存在分支和向前或向后的跳转。直观形象易于理解基本结构所构成的if语句的种形式C语言提供了种形式的if语句:if语句if(“条件”表达式语句的类型不限于逻辑表达式,可以是任意的数值类型包括整型、实型、字符型、指针型数据在if和else后面可以只一个操作语句,也可以有多个操作语句,此时用花括号{}将几个语句括起来成为一个复合语句。if语句的如图所示
单分支选择if语句的if语句的if语句if(“条件”表达式)
语句else
语句2if语句的如图所示
双分支选择if语句的if语句的if语句的嵌套在if语句中又包含一个或多个if语句称为if语句的嵌套。:if(“条件”表达式)
if(“条件”表达式)
语句1else
语句2else
if(“条件”表达式)
语句3else
语句4应当注意if与else的配对关系else总是与最近的if配对。因此最好使内嵌if语句也包含else部分这样ifelse的数目相同从内层到外层一一对应不致出错如果if与else的数目不配对可以加花括弧来确定配对关系。例如if(“条件”表达式)
{
if(“条件”表达式)
语句1}
else
语句2这时{ }限定了内嵌if语句的范围因此else与第一个if配对。嵌套if(“条件”表达式1)
语句1else if(“条件”表达式2)
语句2…
else if(“条件”表达式n)
语句nelse
语句n如图所示
其执行过程是:求“条件”表达式1的值,如果“条件”表达式1的值为真,则执行“语句1”,否则求“条件”表达式2的值,如果“条件”表达式2的值为真,则执行“语句2”,否则……,依此类推。当出现某个“条件”表达式的值为真时,则执行其对应的语句。如果所有的“条件”表达式的值均为假,则执行“语句n+1”。
其功能是:多次判断。每判断一步,都分别分离出一些范围(这些范围已能用于作出相应的结论),逐步缩小判定的范围,直到不必再缩小判定的范围就可以作出相应的结论。
switch语句
我们可以用嵌套的if语句,但如果分支多,则嵌套的if语句层数多,程序冗长而且可读性降低。嵌套的if语句整型、字符型或枚举型整型、字符型或枚举型if (day = = 0)
dayName = Sunday;
else if (day = = 1)
dayName = Monday;
else if (day = = 2)
dayName = Tuesday;
else if (day = = 3)
...
else
dayName = Unknown;
在这些情况下,通常需要将嵌套的if语句witch语句的一般形式如下:switch(“条件”表达式)
{
case 常量表达式1语句1case 常量表达式2语句2…
case 常量表达式n语句ndefault:语句n1
}如图所示说明:整型、字符型或枚举型每一个case常量表达式a、3+4),且该常量表达式值值每一个case的常量表达式的值必须互不相同,否则就会出现互相矛盾的现象对的同一个值,有两种或多种执行方案。( 一个switch语句中可以没有default标号或只能有一个default标号,default标号表示不是任何case标号所提供的其他情况。
( default标号和各个case。多个case可以共用一组执行语句如:…
case A:
case B:
case C:printf(>60n);break;
…
grade的值为A、B或C时都执行同一组语句。
( switch后面括号中的“条件”表达式实际上并非真正的条件,而只是一种跳转指示与 if 语句不同表示下面应该跳转到什么位置继续执行。而各default实
显示全部