资源描述:
《第6章 编程循环控制》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第6章循环控制一、概述二、goto语句以及用goto语句构成循环结构(参见讲稿第二章的例子)三、用while语句实现循环格式:while(表达式)语句功能:当表达式为真时执行循环体内的语句,然后再循环重复刚才的过程,直到表达式为假才终止循环。【例6.2】求。用传统流程图和N-S结构流程图表示算法,见图:编出程序:#includevoidmain(){inti,sum=0;i=1;while(i<=100){sum=sum+i;i++;}printf("%d",sum);}四、用do…while语句实现循环格式:do
2、循环体语句while(表达式);特别注意最后的分号不能省略。先执行一遍循环体语句,再进行表达式的求值,如果表达式为真,则继续循环,否则终止循环。【例6.3】用do-while语句求。用传统流程图和N-S结构流程图表示算法,见图:编出程序:#includevoidmain(){inti,sum=0;i=1;do{sum=sum+i;i++;}while(i<=100);printf("%d",sum);}五、用for语句实现循环格式:for(表达式1;表达式2;表达式3)语句执行过程如下:(1)先求解表达式1。(2)
3、求解表达式2,若其值为真,则执行语句。若为假,则结束循环。(3)求解表达式3。(4)转回上面第(2)步继续执行。换种理解的格式表示:for(循环变量赋初值;循环条件;循环变量增量)循环体语句执行过程理解如下:(1)先对循环变量进行初始化。(2)判断是否符合循环条件,若符合,则执行语句进行循环。若不符合,则结束循环。(3)每次循环结束后对循环变量进行增量改变。(4)转回上面第(2)步继续循环。例:用for语句求。编出程序:#includevoidmain(){inti,sum=0;for(i=1;i<=100;i++){
4、sum=sum+i;}printf("%d",sum);}注:(1)利用逗号表达式可以进行多个变量的初始化,如for(sum=0,i=1;i<=100;i++)(2)也可以写成:for(i=1;i<=100;){sum=sum+i;i++;}循环增量表达式写到循环体的末尾。(3)还可以写成:i=1;for(;i<=100;i++){sum=sum+i;}初始化表达式写在循环之前。(4)括号中必须有两个分号。比较三种循环求:while(表达式)语句do循环体语句while(表达式);for(表达式1;表达式2;表达式3)语句#incl
5、udevoidmain(){inti,sum=0;i=1;while(i<=100){sum=sum+i;i++;}printf("%d",sum);}#includevoidmain(){inti,sum=0;i=1;do{sum=sum+i;i++;}while(i<=100);printf("%d",sum);}#includevoidmain(){inti,sum=0;for(i=1;i<=100;i++){sum=sum+i;}printf("%d",sum);
6、}例:求5的阶乘。下面使用了三种方法编程:#includevoidmain(){#includevoidmain(){#includevoidmain(){inti,sum=1;i=1;while(i<=5){sum=sum*i;i++;}printf("%d",sum);}inti,sum=1;i=1;do{sum=sum*i;i++;}while(i<=5);printf("%d",sum);}inti,sum=1;for(i=1;i<=5;i++){sum=sum*i;
7、}printf("%d",sum);}六、循环的嵌套循环内的循环体中也可以包含另一个完整的循环结构,称为循环的嵌套。(参见书本121页)七、集中循环的比较(参见课本122页和本文档稍上部分的描述)八、break语句和continue语句含义:这两个语句都写在循环体中。break表示跳出循环。continue表示结束本次循环,继续下次循环。例如:#includevoidmain(){floatpi=3.14159,r,area;for(r=1;r<=10;r++){area=pi*r*r;if(area>100)br
8、eak;printf("r=%f,area=%f",r,area);}}注:当area>100为真时执行break语句,跳出循环。思考:这个程序的功能是什么?输出结果怎样?例6.5把100~200之间的