【教学课件】第六章循环控制.ppt
《【教学课件】第六章循环控制.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第六章循环控制.ppt(44页珍藏版)》请在三一办公上搜索。
1、第六章 循环控制,了解goto语句和if 语句构成的循环。熟练掌握for语句、while语句和do-while语 句,及其break语句、continue语句的使用。熟练掌握循环结构程序设计的概念及其程 序编制技术。,main()int i=1;long int sum=1;while(i=10)sum=sum*i;i+;printf(“10!=%ldn”,sum);,sum=1*2*3*4*5*6*7*8*9*10;,sum,循环结构的特点是:程序的流程是在给定条件时,反复执行,某个程序段。,语言中可以用以下语句来实现循环:用goto语句和 if 语句构成循环;用while语句;用do_wh
2、ile语句;用for语句。,6.2 goto语句和goto语句构成的循环,一、goto 语句,goto 语句为无条件转向语句,其作用为:使程序的执行无条件地转移到指定处。,如:goto label_1;goto 123;,执行过程:执行语句时,程序转移到以标号 为前缀的语句处继续执行。,如:p1:x+;.goto p1;,说明:,goto语句是一种非结构化语句,结构化程序设计方法不提倡使用goto语句,因为滥用goto语句将使程序流程无规律,可读性差。但也不是绝对禁止使用,只有在能够大大提高程序效率时才使用。,且记:不要从循环体外跳到循环体内!,二、用goto语句和 if 语句构成循环,例:计
3、算10!并输出结果。,main()int i=1,sum=1;loop:if(i=10)sum=sum*i;i+;goto loop;printf(“10!=%dn”,sum);,运行结果:10!=24320,本应是:10!=3628800,main()int i=1;long sum=1;loop:if(i=10)sum=sum*i;i+;goto loop;printf(“10!=%ldn”,sum);,6.3 while 语句,例:将上面计算10!并输出结果的程序用 while语句写出:,main()int i=1;long int sum=1;while(i=10)sum=sum*i;
4、i+;printf(“10!=%ldn”,sum);,main()int i=1;long int sum=1;loop:if(i=10)sum=sum*i;i+;goto loop;printf(“10!=%ldn”,sum);,循环结构的术语,1.循环条件:是循环结构中的测试表达式。,如:while(i=10),2.循环体:是在每个循环周期均要执行一次的语 句。语句可以是任何语句,简单语句、复合语句、空语句均可以。,如:上例while语句中用花括号括起来的复合语句。,3.循环控制变量:是在循环条件中控制条件是真 是假的变量。,如:上例while语句中使用的变量 i。,注意:循环条件中的表达
5、式一般是逻辑表达式和关系表达式,也可以是算数表达式(非0为真,0为假)。一般表达式中应含有循环控制变量。while(3)和while(0)虽然从程序设计的角度上说是不合理的,但是合法的。,while(3)语句 表示无限循环while(0)语句 表示不进入循环体,要写出一个正确的循环结构,对控制变量要做三方面工作:控制变量赋初值;把控制变量写入正确的循环条件;控制变量的更新、调整。,6.4 do-while 语句,分号不能少,例:将上面计算10!并输出结果的程序用 do-while语句写出:,main()int i=1;long int sum=1;while(i=10)sum=sum*i;i+
6、;printf(“10!=%ldn”,sum);,main()int i=1;long int sum=1;do sum=sum*i;i+;while(i=10);printf(“10!=%ldn”,sum);,我们将while和do-while循环做一下比较:,main()int i;long sum=1;scanf(“%d”,main()int i;long sum=1;scanf(“%d”,输入:9输出:90,输入:11输出:1,输入:9输出:90,输入:11输出:11,比较上面两个程序,虽然结构是相同的,在输入值为有效值时结果相同,但当输入无效值时输出结果是不同的。为什么?,while
7、与do-while的主要区别:,6.5 for语 句,表达式1:一组初始化表达式。表达式2:循环控制条件。表达式3:在执行完循环体语句之后执行的表达式。,我们前面已经说明,要正确表达循环结构应注意三方面的问题:控制变量的初始化,循环的条件和控制变量的更新。for语句在书写形式上正好体现了这种紧密的逻辑关系。,执行过程:,例:将上面计算10!的程序用 for语句写出:,main()int i;long sum;for(i=1,sum=1;i=10;i+)sum=sum*i;printf(“10!=%ldn”,sum);,main()int i;long sum;for(i=1,sum=1;i=1
8、0;sum=sum*i,i+);printf(“10!=%ldn”,sum);,空语句,说明:,表达式1:用于进入循环体之前给某些变量赋初值。若省略,可在for语句前给变量赋初值。,main()int i=1;long sum=1;for(;i=10;i+)sum=sum*i;printf(“10!=%ldn”,sum);,for 循环的三个表达式起着不同的作用,根据需要可以省略。,表达式2:决定循环的条件,若省略,则为无限 循环。,表达式3:用于循环一次后对某些变量进行修改。若省略,可在循环体内对变量进行修改。,main()int i;long sum=1;for(i=1;i=10;)sum
9、=sum*i;i+;printf(“10!=%ldn”,sum);,for 语句最为灵活,它完全可以代替的while语句。,如:i=1;while(i=10)sum=sum*i;i+;,等效于,for(i=1;i=10;i+)sum=sum*i;,for语句功能很强,其中表达式1和表达式3可以是逗号表达式,但为增强程序的可读性,一般不要把与循环无关的东西放到for语句中。,如:sum=1;for(i=1;i=10;i+)sum=sum*i;,6.6 三种循环语句的总结,三种循环语句共同的特点是:当循环控制条件非零时,执行循环体语句,否则终止循环。,语句可以是任何语句,简单语句、复合语句、空语句
10、均可以。,while和for语句先判断循环控制条件,do-while语句后判断循环控制条件,所以,while和for语句的循环体可能一次也不执行,而do-while语句的循环体至少也要执行一次。,在循环体内或循环条件中必须有使循环趋于结束的语句,否则会出现死循环等异常情况。,三种循环可以处理同一问题,一般情况可以互相代替。但在实际应用中,我们要根据具体情况来选用不同的循环语句。选用的一般原则如下:,如果循环次数在执行循环体之前就已确定,一般用for语句;如果循环次数是根据循环体的执行情况确定的,一般用while语句或者do-while语句。,(循环次数确定例)int i;long sum=1;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第六 循环 控制
链接地址:https://www.31ppt.com/p-5663564.html