内容正文:
教案用纸
第 3 周 总第 9 次 学时:2
教学班级: 课程:C语言程序设计 授课教师:
课题: 第3章 程序设计语句
3.3 循环结构
教学方法:讲授、启发
教具:常规教具
教学目标:掌握循环语句、嵌套循环以及流程转向语句的基本操作
教学重点:循环语句在实际中的应用
教学难点:嵌套循环的使用
主要教学内容:
3.3 循环结构
3.3.1 程序的设计过程
3.3.2 当型循环——while循环
3.3.3 直到型循环——do-while循环
3.3.4 格式化的当型循环——for循环
3.3.5 循环的嵌套
课后回顾:
教案用纸
四个一:
提问:if语句的格式及流程图
导入:在程序设计中对于那些需要重复执行的操作应该采用循环结构完成。利用循环结构处理各类重复操作既简单又方便,循环结构又称重复结构。在C语言中有三种可以构成循环的循环语句。
正文:
3.3 循环结构
3.3.1 程序的设计过程
因为C语言中变量的值是可变的,所以考虑设置两个变量,一个变量代表乘数,一个变量代表被乘数。不另设变量,而直接将每一步骤的结果放在被乘数的变量中。例如,这里用s代表被乘数,i为乘数。用循环算法来求解,可以将算法改为:
步骤1:令s=1;
步骤2:令i=2;
步骤3:令s×i,乘积仍放在s中,可表示为: s*i→s;
步骤4:使i的值增1,即i+1→i;
步骤5:如果i的值不大于5,返回重新执行步骤3及以后的步骤4和5;否则,算法结束。
通过这个算法可以看出,步骤3~步骤5组成一个循环,在实现算法时,要反复多次执行步骤3、4、5,直到某一刻,执行步骤5时经过判断,乘数i已超过规定的数值从而返回步骤3停止。
3.3.2 当型循环——while循环
while循环是当型循环,先判断循环条件,再根据条件决定是否执行循环体。
1.while语句形式
while语句的一般格式为:
(
while(
表达式
)
循环体语句
)
图3-9 while语句的程序流程图
while是C语言的关键字。while后圆括号中的表达式,可以是C语言中任意合法的表达式,由它来控制循环体是否执行。在语法上,要求循环体可以是一条简单的可执行语句;若循环体内需要多个语句,应该用大括号括起来,组成复合语句。while语句流程图如图3-9所示。
2.while语句的执行过程
首先计算while后圆括号中表达式的值,当值为非零时,执行循环体语句,执行完后再次判断表达式的值,当表达式的值为非零时,继续执行循环体;当值为零时,退出循环。
3.使用while语句注意的问题
(1)循环体如果包含一个以上的语句,应该用花括号括起来,以复合语句的形式出现。如果不用花括号,则while语句的范围只到while后面第一个分号处。
(2)在循环体中应该有使循环趋向于结束的语句。如无此语句,循环将永不结束。
(3)当第一次判断条件就为假时,循环体一次都不执行。
3.3.3 直到型循环——do-while循环
1.do-While语句的基本形式
(
此处的分号
“
;
”
不可以省略。
) (
do
{
循环体语句
}while(
表达式
);
)
图3-10 do-while语句的程序流程图
2.do-while语句的执行过程
(1)执行do后面循环体中的语句。
(2)计算while后圆括号中表达式的值。当值为非零时,转去执行步骤(1);当值为零时,结束do-while循环。do-while语句的流程图如图3-10所示。
3.do-while语句与while语句的区别
由do-while构成的循环与while循环十分相似,它们之间的重要区别是:while循环控制条件出现在循环体之前,只有当while后面表达式的值为非零时,才可能执行循环体,所以while语句当表达式初值就为假时,循环体一次都不执行;在do-while构成的循环中,总是先执行一次循环体,然后再求表达式的值,因此,无论表达式的值是零还是非零,do-while循环体至少执行一次。
3.3.4 格式化的当型循环——for循环
在三条循环语句中,for语句最为灵活,不仅可用于循环次数已经确定的情况,也可用于循环次数虽不确定,但给出了循环条件的情况,它可以完全代替while语句。所以for语句也是最为常用的循环语句。
1.for语句基本形式
(
for(
表达式
1 ;
表达式
2 ;
表达式
3 )
循环体语句
)
for是C语言的关键字,其后的圆括号中通常含有三个表达式,各表达式之间用“;”隔开。这三个表达式可以是任意形式的表达式,通常主要用于for循环的控制。紧跟在for之后的循环体语句,在语法上要求是一条语句;若在循环体内需要多条语句,应该用大括号括起来组成复合语句。根据for语句的执行特点,可以表示成如下形式:
(
for(
循环变量赋初值
;
循环继续条件
;
循环变量增值
)
循环体语句
)
例如:
for(k=0; k<10; k++)
printf("*");
以上for循环会在屏幕一行上输出10个“*”号。
2.for语句的执行过程
(1)执行“循环变量赋初值”为循环体变量赋初值(注意,该语句在整个循环中只在开始时执行一次)。
(2)判断“循环继续条件”是否成立:若其值为非零,转步骤(3);若其值为零,转步骤(5)。
(3)执行一次for循环体语句。
(4)执行“循环变量增值”,转向步骤(2)。
(5)结束循环,执行for循环之后的语句。
3.3.5 循环的嵌套
1.循环嵌套的形式
若循环语句中的循环体内又完整地包含另一个或多个循环语句,称为循环嵌套。前面介绍的三种循环都可以相互嵌套。循环的嵌套可以多层,但每一层循环在逻辑上必须是完整的。
2.循环嵌套的执行过程
很多初接触C语言的读者会弄不清循环嵌套的执行过程。实际上,C语言的循环嵌套有一个很简单的执行原则:外层循环执行一次(等于某个值)时,内层循环从初值到终值循环执行一遍。
例如:
for(i=1 ; i<=3 ; i++)
for(j=1 ; j<=5 ; j++)
printf(“%d+%d=%d ”, i , j , i+j);
该循环嵌套外层变量i从1到3执行3次,内层变量j从1到5执行5次,则输出语句的执行次数为3*5=15次。三重循环也使用类似方法计算循环体的执行次数。
但如果内层循环变量的终值与外层循环变量有关,则必须计算每次外层变量等于某值时,内层循环执行多少次,然后将多次循环的具体执行次数累加即可。
小结:这节课我们学习了循环结构程序设计的语法结构、使用方法及注意事项,以及与之相关的流程控制语句。希望练掌握选择结构中if语句、switch语句的意义和使用方法,熟练掌握循环基本结构和应用,掌握break和continue语句的使用方法。
备 注
通过现实生活中的实例引发循环结构程序的使用。
注意:循环语句必须有不符合条件的情况,保证能够跳出循环。
难点:while语句与do-while语句的区别。
学科网(北京)股份有限公司
$$