
循环结构程序设计:三种循环语句.doc
9页循环结构(IterationStructure)的概述1. 目的为了解决含有重复处理内容的问题,必须采用循环语句(LoopStatement)来编程实现2. 类型(1)当型循环结构(2)直到型循环结构二、循环语句1. while语句① 功能:实现当型循环结构② 形式while(表达式){循环体}③ 特点:先判断后执行④ 举例:(累加和问题)编程计算整数1〜100的和inti;//循环变量intsum=0;//累加和清0i=1;//循环变量i赋初值while(i<=100){sum=sum+i;//循环变量累加到sum中i=i+1;//改变循环变量i的值}2. do-while语句① 功能:实现直到型循环结构② 形式do{循环体}while(表达式);〃注意最后的分号③ 特点:先执行后判断④ 举例:修改上例/*利用do-while语句编程实现整数1~100的和/inti;//循环变量intsum=0;//累加和清0i=1;〃循环变量i赋初值do{sum=sum+i;//循环变量累加到sum中i=i+1;〃改变循环变量i的值}while(iv=100);〃注意最后的分号3.for语句① 功能:实现当型循环结构。
② 形式for(表达式1;表达式2;表达式3){循环体}③ 特点:先判断后执行;使用频率最高④ 举例:修改上例/*使用for语句编程计算整数1~100的和/inti;//循环变量intsum=0;//累加和清0for(i=1;i<=100;i++){//第一个表达式完成循环变量i赋初值;第三个表达式实现改变循环变量i的值sum=sum+i;//循环变量累加到sum中}4.几种循环语句的比较① 由于while语句和for语句均实现当型循环结构,两者是完全等价的for(表达式1;表达式2;表达式3){循环体;}表达式1;while(表达式2){循环体;表达式3;}② for语句适合循环次数事先已知的情况;而while语句和do-while语句适合循环次数事先未知的情况③ 当第一次进入循环时条件就不满足,while语句和do-while语句就不等价除此情况外,while语句和do-while语句均等价三、程序举例1. 循环次数已知的累加和问题① 编程实现计算100以内偶数的和/*方法一:使用for语句*/sum=0;for(i=2;i<=100;i=i+2){sum=sum+i;}/*方法二:使用while语句*/sum=0;i=2;while(i<=100){sum=sum+i;i=i+2;}/*方法三:使用do-while语句*/sum=0;i=2;do{sum=sum+i;i=i+2;}while(i<=100);第159页课后习题4.10、4.11、4.12、4.13属于循环次数已知,计算累加和的问题。
参考代码注意:计算累加和时,需要累加和变量清02. 循环次数已知的累乘积问题①编程计算n!=1*2*3*4**n的值课本第107页例题4.10)要想解决这个问题,需要用到“递推”的程序设计方法也就是说,求n!时,先求1!,用1!*2得到2!,用2!*3得到3!,以此类推,直到利用(n-1)!*n得到n!为止,问题即可解决/*方法一:利用for语句实现/inti,n;longintp=1;scanf("%d",&n);for(i=1;i<=n;i++){p=p*i;}printf(”%d!=%ld\n",n,p);/*方法二:利用while语句实现/inti,n;longintp=1;scanf("%d",&n);i=1;while(i<=n){p=p*i;printf(”%d!=%ld\n",n,p);/*方法三:利用do-while语句实现/inti,n;longintp=1;scanf("%d",&n);do{p=p*i;i=i+1;}while(i<=n);printf(”%d!=%ld\n",n,p);第159页课后习题4.14属于循环次数已知,计算累乘积的问题参考代码注意:计算累乘积时,需要累乘积变量置1。
3. 循环次数未知的累加和(累乘积)问题①这也是累加求和的问题,但不同的是,这里的循环次数是预先未知的,而且累加项以正负交替的规律出现实现方法,累加项通式term=sign/n表示其中,sign按+1,-1,+1,-1,交替变化,可用sign=-sign实现,sign的初值为1;n按1,3,5,7,变化,可用n=n+2实现,n的初值为1;统计累加项数只有设置一个计数器变量count即可,初值为0详细算法描述和代码实现参见课本第112页例题4.12注意:①能够正确得到累加项或累乘项通式② 计算累加和问题时注意清0,计算累乘积问题时注意置1③ 注意累加项或累乘项是否满足循环终止条件的判断第159页课后习题4.15,4.16,4.17属于循环次数未知,计算累加和的问题参考代码4. 循环结构和选择结构的综合应用(1) 猜数字游戏升级版:编程实现猜数字游戏,要求所猜数字为1~10之间的整数,游戏者只有三次机会,猜数字游戏过程中会根据游戏者所猜数字的大小给出一定的信息提示,增强游戏的趣味性include 参见课本第127页例4.19)判断素数的方法:由于素数是指除了能被1和它本身整除外,不能被其他任何整数整除的数1不是素数2是最小的素数)把m作为被除数,把i=2~(m-1)依次作为除数,判断被除数m与除数i相除的结果,若都除不尽,即余数都不为0,则说明m是素数反之,只要有一次能除尽(余数为0),则说main(){明m存在一个1和它本身以外的另外一个因子,它不是素数/*方法一*/#include /*方法二:目的使用sqrt()*/#include 参见课本第131页例4.20)#include












