欢迎来到天天文库
浏览记录
ID:52472094
大小:590.00 KB
页数:25页
时间:2020-04-08
《c语言第5章循环结构程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、循环结构的特点:在给定条件成立时,反复执行某程序段,直到条件不成立为止。在C语言中,实现循环结构的语句主要有3种:for语句whiledo…While注意两个概念:1、给定的条件称为循环条件2、反复执行的程序段称为循环体执行过程:计算表达式的值,当值为真(非0)时,执行循环体语句。while语句的一般形式为:while(表达式)语句;表达式是循环条件,语句为循环体表达式语句非00一、while语句说明:计算<表达式>的值,若表达式的值为真(非0)时,则执行循环体语句;不断反复,直到表达式的值为假(0)
2、,则不执行循环体语句,而直接转向循环体外的第一条语句。<语句>是循环反复执行的程序,称为“循环体”,当需要执行多条语句时,应使用“{}”括起来组成一个复合语句。while语句是先判断条件,后执行循环体,为“当型”循环,因此若条件不成立,有可能一次也不执行循环体。一般情况下,while型循环最适合于这种情况:知道控制循环的条件为某个逻辑表达式的值,而且该表达式的值会在循环中被改变。例:编程序求:s=1+2+3+……+100main(){ints=0,i=1;while(i<=100){s=s+i;i++
3、;}printf("S=%d",s);}思考:如何求n!二、do...while语句Do-while语句的一般形式为:do{语句;}while(表达式);表达式语句非00执行过程:先执行循环体语句一次,再判别表达式的值,若为真(非0)则继续循环,否则终止循环。例:编程序求:s=1+2+3+……+100main(){ints=0,i=1;do{s=s+i;i++;}while(i<=100);printf("S=%d",s);}求最大公约数的N-S流程图典型例题(例5-8):求两个整数的最大公约数、最小
4、公倍数mnrmnr1284840最大公约数4最小公倍数12*8/4=24辗转相除法voidmain(){intn,m,nm,r,t;printf("Enterm,n=?");scanf("%d%d",&m,&n);nm=n*m;if(m5、hile语句中,表达式后面都不能加分号,而在do-while语句的表达式后面则必须加分号。2.当循环体由多个语句组成时,也必须用{}括起来组成一个复合语句。3.如果循环至少要执行一次,while和do-while语句可以相互替换。for语句使用一般形式为:for(表达式1;表达式2;表达3)语句;表达式1(控制变量的初始化):用来给循环变量赋初值,也允许在for语句外给循环变量赋初值,此时可以省略该表达式。表达式2(循环的条件)循环条件,一般为关系表达式或逻辑表达式。表达式3(循环控制变量的更新)用来6、修改循环变量的值,一般是赋值语句。三、for循环语句1.首先计算表达式1的值。2.再计算表达式2的值,若值为真(非0)则执行循环体一次,否则跳出循环。3.然后再计算表达式3的值,转回第2步重复执行。表达式2语句非00语句求解表达式1求解表达式3注意:在整个for循环过程中,表达式1只计算一次,表达式2和表达式3则可能计算多次。for语句的执行过程:例:用for语句计算s=1+2+3+...+99+100main(){inti,s=0;for(i=1;i<=100;i++)s=s+i;printf("s7、=%d",s);}说明:(1)for语句的一般形式中的“表达式1”可以省略,此时应在for语句之前给循环变量赋初值。注意省略表达式1时,其后的分号不能省略。例如:for(;i<=n;i++)t=t*i;执行时,跳过“求解表达式1”这一步,其他不变。(2)如果表达式2省略,即不判断循环条件,循环无终止地进行下去。也就是认为表达式2始终为真,在形式上构成死循环。例如:for(i=1;;i++)t=t*i;(3)表达式3也可以省略,但此时程序设计者应另外设法保证循环能正常结束,表达式3的功能放到循环体内8、。例如:for(i=1;i<=n;){t=t*i;i++;}(4)可以省略表达式1和表达式3,只有表达式2,即只给循环条件。for(;i<=n;){t=t*i;i++;}i=1;(5)3个表达式都可省略。例如:for(;;)语句相当于while(1)语句。(6)表达式1和表达式3可以是一个简单的表达式,也可以是逗号表达式,即包含一个以上的简单表达式,中间用逗号间隔。例如:for(t=1,i=1;i<=n;t=t*i,i++);四、循环的嵌套——多重循环结
5、hile语句中,表达式后面都不能加分号,而在do-while语句的表达式后面则必须加分号。2.当循环体由多个语句组成时,也必须用{}括起来组成一个复合语句。3.如果循环至少要执行一次,while和do-while语句可以相互替换。for语句使用一般形式为:for(表达式1;表达式2;表达3)语句;表达式1(控制变量的初始化):用来给循环变量赋初值,也允许在for语句外给循环变量赋初值,此时可以省略该表达式。表达式2(循环的条件)循环条件,一般为关系表达式或逻辑表达式。表达式3(循环控制变量的更新)用来
6、修改循环变量的值,一般是赋值语句。三、for循环语句1.首先计算表达式1的值。2.再计算表达式2的值,若值为真(非0)则执行循环体一次,否则跳出循环。3.然后再计算表达式3的值,转回第2步重复执行。表达式2语句非00语句求解表达式1求解表达式3注意:在整个for循环过程中,表达式1只计算一次,表达式2和表达式3则可能计算多次。for语句的执行过程:例:用for语句计算s=1+2+3+...+99+100main(){inti,s=0;for(i=1;i<=100;i++)s=s+i;printf("s
7、=%d",s);}说明:(1)for语句的一般形式中的“表达式1”可以省略,此时应在for语句之前给循环变量赋初值。注意省略表达式1时,其后的分号不能省略。例如:for(;i<=n;i++)t=t*i;执行时,跳过“求解表达式1”这一步,其他不变。(2)如果表达式2省略,即不判断循环条件,循环无终止地进行下去。也就是认为表达式2始终为真,在形式上构成死循环。例如:for(i=1;;i++)t=t*i;(3)表达式3也可以省略,但此时程序设计者应另外设法保证循环能正常结束,表达式3的功能放到循环体内
8、。例如:for(i=1;i<=n;){t=t*i;i++;}(4)可以省略表达式1和表达式3,只有表达式2,即只给循环条件。for(;i<=n;){t=t*i;i++;}i=1;(5)3个表达式都可省略。例如:for(;;)语句相当于while(1)语句。(6)表达式1和表达式3可以是一个简单的表达式,也可以是逗号表达式,即包含一个以上的简单表达式,中间用逗号间隔。例如:for(t=1,i=1;i<=n;t=t*i,i++);四、循环的嵌套——多重循环结
此文档下载收益归作者所有