c语言外层循环处理每个学生的成绩,内层循环累计6次考试的总分,c语言第五章循环结构程序设计...

《c语言第五章循环结构程序设计》由会员分享,可在线阅读,更多相关《c语言第五章循环结构程序设计(53页珍藏版)》请在人人文库网上搜索。

1、第5章 循环结构程序设计,5.1 while语句 5.2 do-while语句 5.3 for 语句 5.4 break、continue和goto 5.5 循环的嵌套 5.6 复合结构程序举例,三大结构,顺序,选择,循环,第3章已讨论,本章讨论,第4章已讨论,问题提出: 有些工作带有明显的“重复性”,需要反复来做,例如计算1000个学生的平均成绩,需要求1000次平均值,如何编写程序高效率地解决这样的问题?,解决方法:采用循环结构。,C语言如何实现循环结构?,什么是循环 现实意义,许多实际问题中往往需要有规律地重复某些操作,如投篮比赛时有:“向篮筐掷球直到100次”这样的步骤,也就是说,在达。

2、到100次之前反复地投。相应的操作在计算机程序中就体现为某些语句的重复执行,这就是所谓的循环。,下面再来思考一个问题: 编程求1 + 2 + + 100的值。,程序段如下: int s = 0; s = s + 1; s = s + 2; s = s + 3; s = s + 4; s = s + 100;,重复100次,晕!,s = s + 1; s = s + 2; s = s + 3; s = s + 4; s = s + 100;,有没有更好(有效)的方法来计算呢?,有!就是用循环来编程。,while、do-while、for语句 循环嵌套 break、continue、goto语句 。

3、循环结构类型的选择及转换 循环结构程序设计举例,学习目标,理解循环结构的含义; 掌握C语言三种循环结构的特点; 掌握while、do-while、for语句的使用方法; 理解goto、break、continue语句含义; 掌握不同循环结构的选择及其转换方法;,学习内容,循环结构的程序设计循环三语句,1. while语句,一般格式:,while (表达式) 循环体,执行流程:,F,T,表达式,循环体,其中: while后面的括号( )不能省; 表达式类型任意,一般是条件或逻辑表达式; 表达式的值是循环的控制条件; 语句部分称为循环体,当需要执行多条语句时,应使用复合语句。,特点: 先判断表达式。

4、,再执行循环体。,while,【案例1】用while语句求1+2+3+100的和。,main ( ) int i = 1, sum = 0; while ( i = 100 ) sum += i; i+; printf (sum = %dn, sum); ,循环初值,循环终值,循环条件,循环体,循环变量增值,运行结果: sum = 5050,【案例2】显示110的平方。,main ( ) int i = 1; while ( i 0 ) printf(OK); 无任何输出,循环体中的语句可为任意类型的C语句。,遇到下列情况,退出while循环:,表达式为假(值为0); 循环体内遇到break、。

5、return或goto语句, (break和goto语句将在随后介绍)。,注意事项,循环控制变量必须提前确定值,否则执行的结果将是不可预知的。,main ( ) int i = 1, sum = 0; while ( i = 100 ) sum += i; i+; printf (sum = %dn, sum); ,要在while语句的某处(表达式或循环体内)改变循环控制变量,否则极易构成死循环。,注意事项,main( ) int i=1, sum=0; while (i = 100) sum += i; printf (sum = %dn, sum); ,判断下面程序的运行结果:,死循环 无。

6、结果,允许while语句的循环体又是while语句,从而形成双重循环。,main( ) int i = 1, j = 1; while (i = 2) j=1; while (j = 3) printf (%d-Hello world!n,j); j+; i+; ,注意事项,输出:,输出: 1-Hello world! 2-Hello world! 3-Hello world! 1-Hello world! 2-Hello world! 3-Hello world!,分析算法: (1) 输入两个正整数m和n。 (2) 用m除以n,余数为r,如果r等于0,则n是最大公因子,算法结束,否则(3)。。

7、 (3) 把n赋给m,把r赋给n,转向(2)。,【案例3】 求两个正整数的最大公因子。,代码,选讲,#include main ( ) int m, n, r ; printf (“Input two integer: ); scanf (%d%d, ,运行结果: Input two integer: 24 56 Their greatest common divisor is 8,do 循环体 while(表达式);,其中: 括号( )和分号 ; 都不能省; 表达式 类型任意; 表达式的值是是循环的控制条件; 循环体为单条语句,需要执行多条语句时,使用复合语句。,F,T,表达式,循环体,循环。

8、结构的程序设计循环三语句,2. dowhile 语句,一般格式:,执行流程:,特点: 先执行一次循环体,再判断表达式。,do,main ( ) int i = 1, sum = 0; do sum += i; i+; while ( i = 100 ); printf (sum = %dn, sum); ,运行结果: sum = 5050,【案例】用dowhile语句求1+2+100的和。,do.while语句注意事项,循环体至少执行一次。 不要忘记初始化循环控制变量,否则执行的结果将是不可预知的。 要在dowhile语句的某处(表达式或循环体内)改变循环控制变量的值,否则极易构成死循环。 d。

9、o.while语句也可以组成多重循环,而且也可以和while语句相互嵌套。,F,T,表达式2,循环体,for,表达式1,表达式3,for(表达式1;表达式2;表达式3) 循环体,循环结构的程序设计循环三语句,3. for 语句,一般格式:,执行流程:,特点: 三种循环中最灵活的一种。,for语句很好地体现了正确使用循环结构应注意的三个问题: 控制变量的初始化 循环条件的设置 循环控制变量的更新,其中: for后面的括号( )不能省 表达式1:一般为赋值表达式,初始化控制变量 表达式2:一般关系或逻辑表达式,循环控制条件 表达式3:一般为赋值表达式,更新控制变量 表达式之间用分号间隔,分号不可省。

10、略 语法上循环体为单条语句,当需要执行多条语句时,应使用复合语句。,循环结构的程序设计循环三语句,3. for 语句,main ( ) int i , sum = 0; for (i = 1; i = 100; i+) sum += i; printf (sum = %dn, sum); ,运行结果: sum = 5050,【案例】用for语句求1+2+3+100的和。,例:计算1*2+3*4+5*6+99*100。 main( ) int i, j; long sum = 0; for ( i =1, j = 2; i = 99; i = i + 2, j = j + 2 ) sum += 。

11、i *j; printf (sum = %ldn, sum); ,三个表达式的类型任意。例如,都可以是逗号表达式,即每个表达式都可由多个子表达式组成。,逗号表达式,逗号表达式,for语句注意事项,main ( ) int i, sum = 0; i = 1; for ( ; i = 100; i+) sum += i; printf(sum = %dn, sum); ,省略表达式1,表达式1、表达式2、和表达式3都是任选项,可以省掉其中的一个、两个或全部,但其用于间隔的分号一个也不能省。,for语句注意事项,main ( ) int i, sum = 0; i = 1; for ( ; i 1。

12、00) break; sum += i+; printf(sum = %dn, sum); ,省略表达式1,2,3,表达式1、表达式2、和表达式3都是任选项,可以省掉其中的一个、两个或全部,但其用于间隔的分号一个也不能省。,for语句注意事项,for (a = 1; ; a+) printf (%dn, a);,若省略表达式2,则表示永远为真。,死循环!,for语句也可以组成多重循环,而且也可以与while语句和do-while语句相互嵌套。,for语句注意事项,循环体中的语句可为任意类型的C语句。,for() for() ,for() while() ,do for() while();,例。

13、如: main ( ) int i,sum = 0; for (i=1 ; i=100; sum+=i,i+) ; printf (sum=%d,sum); ,表示循环体为空语句。,循环体可以是空语句。,for语句注意事项,运行结果: sum = 5050,三种循环可互相嵌套; 外层循环可包含两个以上内循环,但不能相互交叉; 嵌套循环的执行次序: 先内后外。,for( ; ;) do while(); while() . ,外循环,内循环,内循环,循环结构的程序设计循环三语句,4. 循环嵌套,案例,循环结构的程序设计循环三语句,4. 循环嵌套,【例】利用循环嵌套,输出九九乘法表。,选讲,分析,。

14、main ( ) int i, j; for (i = 1; i 10; i+) printf (%4d, i); printf (n-n); for (i = 1; i 10; i+) for (j = 1; j = a /*循环退出*/ ,运行结果: howareyou HOWAREYOU,功能:结束本次循环,跳过循环体中尚未执行的语句,进行下一次是否执行循环体的判断。,for () while () continue; 语句; ,continue;,循环结构的程序设计其他影响流程的语句,5. break与continue语句,(2) continue语句,说明:仅用于循环语句;在嵌套循环。

15、的情况下,continue语句只对包含它的最内层的循环体语句起作用。,【案例】计算1100之间的偶数和。,main ( ) int i,sum = 0; for (i = 1; i =100; i+) if (i%2!= 0) continue; sum+=i; printf (sum=%dn, sum); ,运行结果:,运行结果: sum=2550,一般形式:,循环结构的程序设计其他影响流程的语句,6. goto语句, label: goto label; ,或, goto label; label: ,作用:,使程序直接跳转到语句标号处执行。,语句标号为用户自定义标识符。,循环结构的程序设。

16、计其他影响流程的语句,6. goto语句,说明:,语句标号起标识语句的作用,与goto 语句配合使用。,语句标号放在某一语句行的最前面。,标号后加冒号(:)。,(1) 与条件语句配合使用,构成循环。,循环结构的程序设计其他影响流程的语句,6. goto语句,应用:,【例】求1+2+3+100的和。 main ( ) int i = 1, sum = 0; loop: sum += i+; if (i = 1e-6) pi += t; n += 2; s = -s; t = s / n; pi *= 4; printf (pi = %fn, pi); ,运行结果: pi = 3.141594,本。

17、章小结,关键字: while、do、for、break、continue、goto 语言提供了三种循环语句。 循环次数已知,一般用for 循环条件已知, 一般用while/do-while。 可以相互嵌套、相互转换。 避免死循环,循环条件最终应为假。,break、continue和goto语句都可用于流程控制。其中, break语句用于退出本层switch或循环结构; continue语句提前结束本次循环,继续执行下一次循环; goto语句无条件转移到标号所标识的语句处去执行。,本章小结,要正确使用循环把握三点: 控制变量要初始化 结束条件要明确 循环过程中要更新控制变量,本章小结,下一章,作业:习题5 1,2。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值