欢迎来到天天文库
浏览记录
ID:6149892
大小:591.50 KB
页数:54页
时间:2017-11-14
《第5章_循环结构程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、5.1while语句5.2do-while语句5.3for语句5.4break、continue和goto语句5.5循环的嵌套5.6复合结构程序举例第五章循环结构程序设计教学目的和基本要求:要求学生了解循环结构程序设计,掌握各种循环语句应用的特点及异同点,掌握循环嵌套及复合结构。教学重点:各种循环语句应用的特点及异同点。scanf(“%f”,&a);s=s+a;scanf(“%f”,&a);s=s+a;………….这样重复一百次,然后输出s的值。这样写显然非常麻烦。我们注意到程序中的scanf(“%f”,&a);s=s+a;两句话是一直重复的,如果能用一种语句,使这两句话能自动的重复执行一百次
2、,就可以简化了书写的麻烦,这就是循环语句。编程解决这样的一个问题:从键盘输入一百个学生的成绩,求总成绩。从前面所学,有两种解决方法。1.设一百个变量,分别输入学生的成绩,然后求和。这种方法浪费内存空间,显然不实际。2.设一个变量,每次输入一个学生成绩,累加后再输入下一个学生成绩,如下:C语言有while、do-while、和for语句三种循环结构语句。前两个称为条件循环,即根据条件来决定是否继续循环;后一个称为计数循环,即根据设定的执行次数来执行循环。5.1while语句一般形式:while(表达式)语句表达式语句真假表达式1.计算表达式语句2.如果表达式的值为非零,执行语句表达式3.返回第
3、一步,重新计算表达式4.如果表达式的值为零,则结束循环如果表达式的值一开始就为0,则语句一次也不会被执行。执行流程:while语句举例问题:求学生的平均成绩,以输入负数成绩为结束算法分析:1.定义变量score存储学生成绩,定义s=0存储累加的成绩,定义n=0统计录入的成绩数目。2.输入第一个学生的score3.若score>=0,执行第4步,否则执行第7步4.n++5.s=s+score6.录入下一个score,并返回第3步7.如果n>0,输出s/n否则输出没有学生成绩main(){intn=0;floats=0,score;scanf(“%f”,&score);while(score>=
4、0){n++;s=s+score;scanf(“%f”,&score);}if(n>0)printf(“%f”,s/n);elseprintf(“nostudentscore!”);}程序:5.2do—while语句一般形式:do{语句}while(表达式);1.执行语句3.表达式的值为非零,返回第1步4.表达式的值为零,结束循环语句至少被执行一次。表达式语句2.计算表达式执行流程:注意:分号不能丢语句表达式真假main(){intn=0;floats=0,score;do{scanf(“%f”,&score);n++;s=s+score;}while(score>=0);if(n>1
5、)printf(“%f”,(s-score)/(n-1));elseprintf(“nostudentscore!”);}用do-while语句编写统计学生平均成绩的程序:由于do-while语句至少要被执行一次,特别要注意n和s的取值问题!想想这样的一段循环语句的执行结果:i=1;while(i<=100)putchar(‘*’);i++;这个循环永远不会结束,因为循环控制变量i没有在循环体内被改变,i++;不属于循环体。应该改为:i=1;while(i<=100){putchar(‘*’);i++;}循环语句中一定要注意表达式的值是否能在循环执行过程中被改变,以免造成死循环。5.3f
6、or循环语句for(表达式1;表达式2;表达式3)循环体语句一般形式:1.计算表达式1,通常用于循环开始前设置变量初值。2.计算表达式2,值为0则结束循环,否则执行第3步。3.执行循环体语句。4.计算表达式3,返回第2步。执行流程表达式1表达式2循环体表达式3假真例:求1+2+…+99#includemain(){inti,s=0;for(i=1;i<=99;i++)s=s+i;printf(“s=%d”,s);}分析:用变量i从1到99循环,把i的值累加到变量s中,最后输出s的值。程序如下:i=1i<=99s=s+ii++假真从上面的程序我们看到,for语句中:表达式1:
7、通常是给循环变量赋初值表达式2:循环是否继续执行的判别表达式,这个表达式通常与某一个(或多个)变量的值有关,随着这个(些)变量的值的改变,表达式的结果发生变化,这个(些)变量被称为循环因变量。表达式3:通常用于改变循环因变量的值。在某些情况下,for语句中的表达式1、2、3都可以省略,而改用其他的方式来实现这些功能。我们还用上面的例子说明for语句省略表达式的情形。1.省略表达式1:#include
此文档下载收益归作者所有