第4章 循环结构程序设计.ppt
《第4章 循环结构程序设计.ppt》由会员分享,可在线阅读,更多相关《第4章 循环结构程序设计.ppt(74页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第4章章循环结构程序设循环结构程序设计计n熟练掌握三种循环语句的基本结构以及循环语句的嵌套。熟练掌握三种循环语句的基本结构以及循环语句的嵌套。n掌握掌握goto语句的一般形式。语句的一般形式。n熟练掌握熟练掌握break、continue跳转语句使用跳转语句使用n使用三种基本结构编写简单的程序使用三种基本结构编写简单的程序本章重点本章重点2008-9-262程序设计基础(C语言)wh4.14.1循环的概念循环的概念循环:循环:就是有规律地重复执行某些语句的过程。就是有规律地重复执行某些语句的过程。2008-9-263程序设计基础(C语言)wh 例如:要计算例如:要计算0到到360度的正弦函数
2、,要求每隔度的正弦函数,要求每隔0.1度计算度计算一次,如果没有循环结构,则:一次,如果没有循环结构,则:.x=0.0;y=sin(x);printf(“y=%f”,y);x=0.1;y=sin(x*3.14159/180.0);printf(“y=%f”,y);对于如此简单的问题,需要对于如此简单的问题,需要10000多条语句。多条语句。2008-9-264程序设计基础(C语言)wh 循环结构来处理重复计算的问题。循环结构来处理重复计算的问题。对于上述问题可以用以下程序:对于上述问题可以用以下程序:for(i=0;i=3600;i+)x=i*3.14159/1800.0;y=sin(x);p
3、rintf(“y=%f”,y);显然,这段程序简洁易懂。显然,这段程序简洁易懂。2008-9-265程序设计基础(C语言)wh4.2 for4.2 for循环循环for循环通过循环通过for语句实现。语句实现。for语句的一般格式为:语句的一般格式为:for(表达式表达式1;表达式;表达式2;表达式;表达式3)语句语句表达式表达式1用于循环赋初始值,它只能执行一次;用于循环赋初始值,它只能执行一次;表达式表达式2是循环条件;是循环条件;表达式表达式3用于对循环条件的修改,以使循环能趋于结束。用于对循环条件的修改,以使循环能趋于结束。2008-9-266程序设计基础(C语言)wh 执行过程:执行
4、过程:执行表达式1计算表达式2并判断循环体执行表达式3=0非非02008-9-267程序设计基础(C语言)wh例如例如:求从求从1 1加到加到100100的程序。的程序。程序如下:程序如下:main()ints,i;s=0;for(i=1;i=100;i+)s=s+i;printf(sum=%d,s);循环体!循环体!结果:结果:sum=50502008-9-268程序设计基础(C语言)whforfor语句语句-使用要点使用要点1、for语句中的表达式语句中的表达式1可以省略可以省略,但在但在for循环之前循环之前应给循环应给循环变量赋值变量赋值.例如例如:i=1;for(;i=100;i+)
5、sum=sum+i;2、表达式、表达式2也可以省略也可以省略,但循环将陷入死循环但循环将陷入死循环.例如例如:for(i=1;i+)sum=sum+i;3、表达式、表达式3也可以省略也可以省略,但应在循环体中增加使循环变量值改但应在循环体中增加使循环变量值改变的语句变的语句.例如例如:for(sum=0,i=0;i=100;)sum=sum+i;i+;2008-9-269程序设计基础(C语言)wh4、表达式、表达式1和表达式和表达式3同时省略也允许同时省略也允许,例如例如:i=1;sum=0;for(;i=100;)sum=sum+i;i+;这是完全与这是完全与while循环等同循环等同.5、
6、三个表达式都可以省略、三个表达式都可以省略,但但“;”不能省略。不能省略。for(;)sum=sum+i;循环将无休止的执行下去循环将无休止的执行下去forfor语句语句-使用要点使用要点2008-9-2610程序设计基础(C语言)whforfor语句语句-使用要点使用要点6、表达式、表达式1中的表达式可以是循环变量的赋初值的表达式中的表达式可以是循环变量的赋初值的表达式,也也可是与赋初值根本无关的其他表达式可是与赋初值根本无关的其他表达式,或者两者兼而有之或者两者兼而有之.例如例如:for(sum=0,i=1;i=100;i+)sum=sum+i;表达式表达式3也可以出现同样的情况也可以出现
7、同样的情况,例如例如:for(sum=0,i=1;i=100;sum=sum+i,i+);2008-9-2611程序设计基础(C语言)wh7、表达式、表达式2一般清况下是关系表达式或逻辑一般清况下是关系表达式或逻辑表达式表达式,也可以是其他表达式也可以是其他表达式,例如例如:for(;(c=getchar()!=n;printf(“%c”,c);若输入若输入:cauc 输出为输出为cauc,不是输出不是输出ccaauucc.forfor语句语句-使用要点使用要点2008-9-2612程序设计基础(C语言)wh 例例求求Fibonacci数列数列1,1,2,3,5,8的前的前30个数个数F1=1
8、F2=1Fn=Fn-1+Fn-22=1+13=1+25=2+38=3+5在一次循环中计算两项,递推公式为:在一次循环中计算两项,递推公式为:F1=1F2=1(初值)(初值)F1=F1+F2F2=F2+F12008-9-2613程序设计基础(C语言)wh main()longintf1,f2;inti,nprintf(“Inputn:”);scanf(“%d”,&n);f1=f2=1;for(i=1;i=n;i+)printf(“%ldt%ldn”,f1,f2);f1=f1+f2;f2=f2+f1;2008-9-2614程序设计基础(C语言)whforfor语句语句-范例范例#includevo
9、idmain(void)inti,n;longfact=1;printf(pleaseinputn:);scanf(%d,&n);for(i=1;i=n;i+)fact*=i;printf(%d!=%ld,n,fact);例例:求求n!n!2008-9-2615程序设计基础(C语言)whforfor语句例语句例2 2:求一个等差数列前求一个等差数列前n项的和:项的和:ai+1-ai=d(i=1,2,3)分析:分析:1输入输入n、d和等差数列的第一个数和等差数列的第一个数a的取值。的取值。2sum、i的初值置的初值置03a+sumsum4计算数列中下一个数的取值计算数列中下一个数的取值a+da5
10、i+1i6重复重复3、4、5步直到步直到i大于大于n7输出结果输出结果nforfor语句语句-范例范例2008-9-2616程序设计基础(C语言)wh#includevoidmain(void)inta,d,n,i;intai,sum=0;printf(“inputa=?td=?tn=?n”);scanf(“%d%d%d”,&a,&d,&n);ai=a;for(i=1;i=n;i+)sum+=ai;ai+=d;printf(“sum=%dn”,sum);2008-9-2617程序设计基础(C语言)wh for语句的特点:语句的特点:1、使用了三个表达式、使用了三个表达式2、循环控制变量可以在循
11、环体内使用,也可以不使用,、循环控制变量可以在循环体内使用,也可以不使用,仅用来控制循环次数仅用来控制循环次数3、从正常出口离开循环时,循环控制变量会超过终值、从正常出口离开循环时,循环控制变量会超过终值2008-9-2618程序设计基础(C语言)whforfor语句语句练习练习练习练习:求求(即求(即求1+2!+3!+4!+20!)。!)。2008-9-2619程序设计基础(C语言)wh4.3 while4.3 while循环循环当型循环当型循环while循环通过循环通过while语句实现。语句实现。while语句的一般格式为:语句的一般格式为:while(表达式表达式)语句语句2008-9
12、-2620程序设计基础(C语言)whwhile语句的执行过程为:语句的执行过程为:(1)计计算算并并判判断断表表达达式式的的值值。若若值值为为0,则则结结束束循循环环,退退出出while语句;若值为非语句;若值为非0,则执行循环体。,则执行循环体。(2)转步骤转步骤(1)。whilewhile语句的执行过程语句的执行过程2008-9-2621程序设计基础(C语言)wh 执行过程:执行过程:计算表达式并判断循环体=0非非02008-9-2622程序设计基础(C语言)wh#includevoidmain(void)inta=1,sum=0;while(a=100)sum+=a;a+;printf(
13、%d,sum);whilewhile语句语句-范例范例100例如例如:求求 nn=1注意注意“边界值边界值”的的选择选择!应有使循环趋于结应有使循环趋于结束的语句!束的语句!结果结果:Sum=50502008-9-2623程序设计基础(C语言)wh例:统计从键盘输入的一行字符的个数。例:统计从键盘输入的一行字符的个数。#includevoidmain(void)intnum=0;printf(请输入一行字符请输入一行字符:);while(getchar()!=n)num+;printf(共输入了共输入了%d个字符!个字符!,num);whilewhile语句语句-范例范例2008-9-2624
14、程序设计基础(C语言)whwhilewhile语句语句-范例范例例例:个位数是个位数是6,且能被,且能被3整除的整除的5位数共有多少个?位数共有多少个?#includevoidmain(void)longintn=10006;intcount=0;while(n=99999)if(n%3=0)count+;n+=10;printf(“count=%dn”,count);练习:练习:能被能被3整整除的除的3位偶数共位偶数共有多少个?有多少个?2008-9-2625程序设计基础(C语言)wh 例例利用辗转相除法,求两个正整数的利用辗转相除法,求两个正整数的最大公约数最大公约数算法:算法:1)若)若
15、J=0,则,则I为最大公约数为最大公约数2)若)若J不为不为0将将I除以除以J,余数为,余数为KI=J;J=K转转1)2008-9-2626程序设计基础(C语言)wh main()inti,j,temp;printf(“Enter2integers:”);scanf(“%d%d”,&i,&j);while(j)temp=i%j;i=j;j=temp;printf(“Gcd=%dn”,i);2008-9-2627程序设计基础(C语言)wh1.圆括号中的表达式可以是任意表达式,它仅用来测试表达式圆括号中的表达式可以是任意表达式,它仅用来测试表达式的结果值是零值还是非零值,用以决定循环进行的条件,的
16、结果值是零值还是非零值,用以决定循环进行的条件,称为称为“判终表达式判终表达式”,一般是关系表达式或逻辑表达式,与,一般是关系表达式或逻辑表达式,与条件语句一样可进行如下简化:条件语句一样可进行如下简化:while(x!=0)while(x)while(x=0)while(!x)WhileWhile语句语句-使用要点(使用要点(当型循环当型循环)2008-9-2628程序设计基础(C语言)wh2.当判终表达式为非零常量时,这样的当判终表达式为非零常量时,这样的while语句为无穷循环语句为无穷循环语句,如:语句,如:while(1)语句语句;/无穷循环语句无穷循环语句3.while语句的循环体
17、通常是一个复合语句,也可以是简单语语句的循环体通常是一个复合语句,也可以是简单语句,甚至可以是一个空语句。句,甚至可以是一个空语句。4.在循环体中应有使循环趋于结束的语句,以避免在循环体中应有使循环趋于结束的语句,以避免“死循环死循环”。WhileWhile语句语句-使用要点使用要点2008-9-2629程序设计基础(C语言)wh4.4 do-while4.4 do-while循环循环直到型循环直到型循环do-while循环通过循环通过do-while语句实现。语句实现。do-while语句的一般格式为:语句的一般格式为:do语句语句while(表达式表达式);2008-9-2630程序设计基
18、础(C语言)whdo-while语句的执行过程为:语句的执行过程为:(1)执行循环体语句。执行循环体语句。(2)计计算算并并判判断断表表达达式式的的值值。若若值值为为0,则则结结束束循循环环,退退出出while语句;若值为非语句;若值为非0,则转步骤,则转步骤(1)。do-whiledo-while语句的执行过程语句的执行过程2008-9-2631程序设计基础(C语言)wh 执行过程:执行过程:计算表达式并判断循环体=0非非02008-9-2632程序设计基础(C语言)wh#includevoidmain(void)inti,sum=0;i=1;dosum=sum+i;i+;while(i=1
19、00);printf(“%d”,sum);do-whiledo-while语句语句-范例范例100例如例如:求求 nn=1无论表达式的值是多无论表达式的值是多少,循环体至少执行少,循环体至少执行一次!一次!2008-9-2633程序设计基础(C语言)wh例例:个位数是个位数是6,且能被,且能被3整除的整除的5位数共有多少个?位数共有多少个?#includevoidmain()longintn=10006;intcount=0;doif(n%3=0)count+;n+=10;while(n=99999);printf(“count=%dn”,count);do-whiledo-while语句语句
20、-范例范例练习:练习:个位数个位数是奇数,且能是奇数,且能被被7整除的整除的4位位数共有多少个数共有多少个?2008-9-2634程序设计基础(C语言)whdo-whiledo-while语句与语句与whilewhile语句的本质区别语句的本质区别while语句是先计算并判断表达式的值。若其值为非语句是先计算并判断表达式的值。若其值为非0,则执,则执行循环体;若其值为行循环体;若其值为0,则退出循环。,则退出循环。do-while语句则首先执行循环体,然后再计算并判断表语句则首先执行循环体,然后再计算并判断表达式达式的值。因此,的值。因此,do-while语句至少要执行一次循环体。语句至少要执
21、行一次循环体。2008-9-2635程序设计基础(C语言)wh1.与与while语句类似,判终表达式可以是任意表达式,它仅用来测语句类似,判终表达式可以是任意表达式,它仅用来测试表达式的值是零值还是非零值,用以决定循环进行的条件试表达式的值是零值还是非零值,用以决定循环进行的条件.2.do-while语句的循环体既可以是一个复合语句,也可以是一个语句的循环体既可以是一个复合语句,也可以是一个简单语句。但即使循环体是一个简单语句,包围它的一对大括简单语句。但即使循环体是一个简单语句,包围它的一对大括号也不能省略。号也不能省略。do-whiledo-while语句语句-使用要点使用要点2008-9
22、-2636程序设计基础(C语言)wh4.5 4.5 跳转语句跳转语句4.5.1 continue4.5.1 continue语句语句continue语句用于提前结束循环中的一轮循环。当程语句用于提前结束循环中的一轮循环。当程序执行到序执行到continue语句时,就跳过循环中后面还未语句时,就跳过循环中后面还未执行的语句,回到循环的起始处,继续进行下一轮执行的语句,回到循环的起始处,继续进行下一轮的循环。的循环。continue语语句句常常与与if语语句句联联合合起起来来使使用用,以以便便在在满满足足一定条件时提前结束本轮循环。一定条件时提前结束本轮循环。功能功能:结束本次循环结束本次循环,接
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4章 循环结构程序设计 循环 结构 程序设计
限制150内