资源描述:
《C语言-第5章循环结构.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章循环结构循环的基本要素有三个:循环入口(即循环的初始化条件)循环出口(即循环的终止条件)循环体(反复执行的部分)C语言提供了3种循环语句实现循环结构5.1while语句5.2do-while语句5.3for语句5.4转移语句5.5举例巩固练习图1.6当型循环结构A当p为真语义:计算表达式的值,当值为非0(真)时,执行循环体语句。重复上述操作,直到表达式的值为0(假)时,跳出循环,转而执行while语句的后续语句。5.1while语句while语句的一般形式为:while(表达式)语句;图5.1while语句的语义表达式
2、语句sum=0,i=1i<=100?sum=sum+ii=i+1输出sumwhile(i<=100){sum=sum+i;i=i+1;}sum=0,i=1i<=100?sum=sum+ii=i+1输出sum【例5.1】计算i<=n输出sumsum=sum+i;i++;图5.2例5.1N-S图定义变量i=1,sum=0和n输入正整数给n/*求n个自然数的累加和*/#include"stdio.h"main(){intn,i=1,sum=0;printf("Enteranumber:");scanf("%d",&n);while
3、(i<=n){sum+=i;i++;}printf("Sumis%d",sum);}sum称为累加器,使用前要进行初始化,一般初始化为0思考:2.求1+1/2+1/3+…..+1/n3.求1-1/2+1/3-…..-1/n1.求使用while语句应注意以下几点:while语句中的表达式可以是任意表达式,一般是关系表达或逻辑表达式,只要表达式的值为非0(真)则继续循环。如:while(n--)printf("%d",n);循环体可以是空语句、单语句或用花括号括起来的复合语句。应注意循环条件的选择以避免死循环。例如下列循环语句:
4、while(n=10)printf("%d",n++);while语句从语法上来说是一条完整的控制语句。死循环允许while语句的循环体语句又是while语句,从而形成循环嵌套。如:i=1;while(i<=9)/*外循环*/{j=1;while(j<=i)/*内循环*/{printf("%4d",i*j);j++;}i++;printf("");}使用while语句应注意以下几点:九九乘法表6.while语句实现的循环结构特点:先判断循环条件,后执行循环体。若一开始循环条件就不成立,则循环体一次也不执行:inti=0;
5、while(i>100)sum+=i;使用while语句应注意以下几点:5.2do-while语句do-while语句的一般形式为:do语句;while(表达式);图5.4do-while语句的语义表达式语句语义:先执行循环体语句一次,再判别表达式的值,若为非0(真)则继续执行循环体语句,否则终止循环,转而执行dowhile语句后面的语句。/*求n个自然数累加和*/main(){intn,i=1,sum=0;printf("Enteranumber:");scanf("%d",&n);do{sum+=i;i++;}while
6、(i<=100);printf("%d",sum);}/*求n个自然数的累加和*/#include"stdio.h"main(){intn,i=1,sum=0;printf("Enteranumber:");scanf("%d",&n);while(i<=n){sum+=i;i++;}printf("Sumis%d",sum);}注意观察【例5.3】一个人口统计程序,1980年世界人口已达45亿,按年增长率1%计算,问什么年份开始世界人口突破100亿大关。#include“stdio.h”main(){intyear=198
7、0;doublerate=0.01,p=4.5e+09;do{p=p*(1+rate);year++;}while(p<1e+10);printf("year=%d,%e",year,p);}while(p<1e+10){p=p*(1+rate);year++;}初值:年:year=1980人口:p=4.5e+09以后每年的人口:p=p*(1+0.01)5.3for语句一般形式为:for(表达式1;表达式2;表达3)语句执行过程:①计算表达式1的值,为循环变量赋初值。②计算表达式2的值,若值为非0(真),则执行循环体一次
8、,否则跳出循环。③计算表达式3的值,转回第②步重复执行。表达式2语句图5.5for语句的语义表达式1表达式3如:sum=0;for(k=1;k<=100;k++)sum+=k;赋值控制循环结束循环变量增值或减值#include“stdio.h”main(){intn,i=1,sum=0;p