资源描述:
《C语言课件第6章循环结构》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章循环结构程序设计主要内容:1、循环结构2、while语句3、do_while语句4、for语句5、循环的嵌套6、goto、break、continue语句重点掌握:循环结构的分析,循环语句的执行过程。6.1循环结构的组成循环结构:描述有规律的重复操作问题。组成:要重复执行的操作,重复执行所需的条件。例6.1:求10!.分析:计算1*2*3*……*10;需重复执行“乘”的操作:用循环结构描述:设k为每次要乘的乘数,p为部分积,则循环执行的条件为:k<=10;循环重复执行的操作为:k*p送给p,k加1。流程图:startk=1,p=1k≤10p=p*kk=k+1
2、输出pendYN一个完整的循环结构一般由四部分组成:循环体、循环控制条件、循环变量的初始化、循环变量的增值其中,循环体是需要重复执行的操作序列;循环控制条件是重复执行循环体所需的条件,即当条件成立时执行循环体,否则结束循环;循环变量是决定循环条件是否成立的变量;循环变量的增值反映了循环变量的改变规律,它使循环变量的值向着使循环结束的方向改变;循环变量的初始化是指在进入循环前,给循环变量赋初值,否则首次进入循环时,无法确定循环控制条件是否成立。如在本例中,循环体:P=P*K;K=K+1;循环条件:K<=10循环变量:K进入循环前给K赋初值:1改变循环变量的值:K++
3、例6.2从键盘输入20个试验数据(整型),统计正数、负数的个数。分析:重复执行20次,每次对一个数进行处理:输入,判断正、负。设j为已处理实验数据的个数,a,b分别保存正数、负数的个数,则:循环体:输入第j个数,并处理数据(用选择结构),j增1循环条件:j<20循环变量的初值:0循环变量增值:1流程图:startj=0j<20j=j+1输出a,benda=0;b=0YN输入x处理x循环有两类:1.当型循环:先判断后执行,即……以上两例均为当型循环结构。(常用)2.直到型循环:先执行后判断,即……(c语言中无直接描述直到型循环的语句,使用时需先转换成当型循环结构,因
4、此不常用,一般在编写菜单程序时使用。本长只作简要介绍)。:6.2while语句用于描述“当型”循环结构。例6.3用while语句编写例6.1的程序。main()/*求10!*/{intk;longp;p=1;k=1;/*给循环变量赋初值*/while(k<=10)/*循环条件放在while语句的括号中*/{p=p*k;/*循环体是一个复合语句*/k++;/*循环变量增值语句*/}printf("10!is:%ld",p);}思考:若n由键盘输入,如何实现n!?6.2while语句While语句的一般格式:while(表达式)/*表达式为循环条件*/循环体语句其
5、中,循环体语句可以是简单语句、复合语句或空语句。如本例中循环体为复合语句{p=p*k;k++;}分析例6.3,可得while语句的执行过程为:①计算while后条件表达式的值。②若表达式的值为真,则执行循环体语句,然后转①;否则,退出循环,即结束while语句。流程图(见下页)While语句的执行流程图:表达式循环体语句YN例6.4用while语句编写例6.2的程序。main(){inta,b,j,x;a=b=0;j=0;/*循环变量赋初值*/printf("enter20integers:");while(j<20)/*条件:j<20*/{scanf(“%d
6、”,&x);/*循环体为复合语句*/if(x>0)a++;elseif(x<0)b++;j++;/*循环变量增值*/}printf("positive:%d,negative:%d",a,b);}例6.5输入某班一门课的成绩并计算其平均成绩。(人数不定,当输入成绩为-1时结束)。分析:本例的特点是“循环次数不确定”,而是已知循环结束的条件。循环的组成:循环体:将有效成绩score加入部分和sum;输入下一个成绩score。循环控制条件:score!=-1循环变量:score循环变量的改变:用户输入循环变量的初值:键盘输入例6.5程序:main(){floats
7、core,sum=0;intn=0;printf("enterascore(-1forend):");scanf("%f",&score);/*循环变量赋初值*/while(score!=-1){sum+=score;n++;printf("enterascore(-1forend):");scanf(“%f”,&score);/*改变循环变量的值*/}printf("n=%d,aver=%f",n,sum/n);}特点:当第一次输入-1时,循环体执行次数为0。Break语句:用于结束循环main()/*例6.5可改用以下程序实现*/{floatsco
8、re,su