循环语句和转移语句课件_第1页
循环语句和转移语句课件_第2页
循环语句和转移语句课件_第3页
循环语句和转移语句课件_第4页
循环语句和转移语句课件_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 循环语句和转移语句 循环语句和转移语句4.0 引例求s=1+2+3+100之和。main() int s=0,i=1;start:s=s+i; i=i+1; if(i=100)goto start; printf(s=%d,s); getch();4.0 引例求s=1+2+3+100之和。4.1 基本概念1.循 环 体:被重复执行的程序段,可以是一个语句,也可以是由多个语句组成的复合语句;2.循环变量:用于控制循环次数的变量,常用i,j,k等;3.嵌 套:一个控制结构中还包含另一个控制结构,如选择中包含选择,循环套循环,选择套循环,循环中套选择等;4.死 循 环:循环无法中止的情况被称为死循

2、环,如果遇到死循环,可以用Ctrl+Break键中断跳出;5.步 长:指循环变量每次变化的幅度。如经常可以看到的i+,表示步长为1。4.1 基本概念1.循 环 体:被重复执行的程序段,可以是一4.2 常用转移语句1.goto 语句标号:将程序流程转向指定标号处,已经很少使用;2.return(表达式):用于从函数返回表达式的值,在函数中使用,见第6章;3.break:强行中断语句,仅用于switch结构和循环结构中,使程序流程跳到结构之外的第一条语句;4.continue:仅用于循环结构中,使循环体中之后的语句不再被执行,请理解示例: int i; for(i=0;i10;i+) if (i%

3、2=0) continue; printf(%5d,i); 请先预测结果再运行!4.2 常用转移语句1.goto 语句标号:将程序流程转向指4.3 循环第一结构forfor结构是C语言中使用最广泛、最灵活的结构。可以通用于任何循环结构。一般形式: for(表达式1;表达式2;表达式3) 循环体1. 表达式1:一般用于为循环变量赋初值、为循环作准备等 ;2. 表达式2:一般为一个条件表达式,当值为非0时循环得以执行;3. 表达式3: 一般用于改变循环变量的值,以使得条件表达式的值向趋于0方向发展,从而结束循环。4.3 循环第一结构forfor结构是C语言中使用最广泛、最4.3 循环第一结构for

4、4. for循环执行过程 (1)先执行表达式1; (2)执行表达式2,值为真则执行循环体,否则结束循环; (3)执行循环体; (4)执行表达式3,然后goto第(2)步。出口表达式2循环体真假表达式1表达式34.3 循环第一结构for4. for循环执行过程出口表达式4.3 循环第一结构for5. 循环注意问题 (1) 无表达式1,循环变量没有赋初值; (2)无表达式2,循环没有结束控制; (3)无循环体,循环一般没有意义; (4)无表达式3,死循环,循环无法结束。 (5)认真理解P104-105出口表达式2循环体真假表达式1表达式34.3 循环第一结构for5. 循环注意问题出口表达式2循环

5、4.3 循环第一结构for示例1:用for语句改写引例出口i=100s=s+i真假s=0,i=1i+int i,s=0;for(i=1;i=100;i+)s=s+i;printf(s=%d,s);4.3 循环第一结构for示例1:用for语句改写引例出口i4.3 循环第一结构for示例2:改写引例int i=1,s;for(s=0;i=100;i+)s=s+i;printf(s=%d,s);int i,s;for(i=1,s=0;i100)break; s=s+i; i+;printf(s=%d,s);4.3 循环第一结构for示例2:改写引例int i=1,s4.4 循环第二结构whilei

6、nt i=1,s=0;for(;i=100;)s=s+i;i+;printf(s=%d,s);int i=1,s=0;while(i=n)j=j*i;i+;printf(s=%d,s);示例2:改写引例对比可以看出,while结构就是将表达式1移到了循环体前,表达式3移动了循环体中的for结构。4.4 循环第二结构whileint i=1,s=0;int4.5 循环第三结构do-while (1)之所以将其定为第三结构,是因为前两者循环控制语句只有一行,而它要两行才能完成; (2)前两者为前测试循环,它为后测试循环; (3)前两者循环体有可能不被执行,它的循环体至少被执行一次; (4)它一般用

7、于循环条件放在前面不好写条件,而执行一次循环体后就可以写出循环条件的情况。 (5)三种循环结构均可互换,没有最好!只有最适合!4.5 循环第三结构do-while (1)之所以将其定为4.5 循环第三结构do-while 示例2:输入一串字符,判断字母、数字分别有多少个,如果输入字符为“#”,则循环立即结束!x=#c=n=0;c+x=getche()x是字母x是数字n+4.5 循环第三结构do-while 示例2:输入一串字符#include ctype.hmain() char x; int c=0,n=0; do x=getche(); if(isalpha(x) c+; else if(

8、isalnum(x)n+; while(x!=#); printf(nc=%d,n=%d,c,n); getch();4.5 循环第三结构do-while1.while语句后的分号很重要,否则前一个do没有结束,而该while会被当成一个新的while循环;2.两个字符判断函数要注意加头文件;3.想想为什么不用getch及getchar函数;4.注意循环中嵌套的多分支选择结构。#include ctype.h4.5 循环第三结构do4.6 嵌套1. 外层一定要完全包含内层;2. 内外层循环变量不能相同;3. 最先开始的结构(外层结构)要最后完成,最后开始的结构(内层结构)要最先完成,即“后进先

9、出”4. 典型示例:打印九九乘法口诀表4.6 嵌套1. 外层一定要完全包含内层;4.7 常用算法记数与累加相同,要求设置变量用作累加器并一般要求累加器初值为0,如前例中的求字母和数字个数、求多个数的平均值等等;累积要求设置一个变量为累积器,并一般要求累积器初值为1,如求阶乘;典型示例如引例,例4-1,习题中的2、3、4、5、6、7、10、20、22、23。4.7.1 记数、累加与累积4.7 常用算法记数与累加相同,要求设置变量用作累加器并一般4.7 常用算法1. 将所有可能的解一一尝试的一种算法;2. 典型示例:例4-10的百钱百鸡问题,例4-12求素数,例4-13,习题9、12、14、15、

10、20、24,还有好多灯谜游戏如: AB -CD EF*G=HI 其中AI为19中的一个数字,互不相同;3. 这类题目程序简单,难在优化。4.7.2 穷举法(枚举法)4.7 常用算法1. 将所有可能的解一一尝试的一种算法;4.4.7 常用算法1. 用一个新值取代替旧值,直到得到满足某一条件的结果;2. 典型示例:例4-2,例4-4,例4-14,习题13、21;3. 这种题看起来复杂,主要是要找出迭代规律。4.7.3 迭代法4.7 常用算法1. 用一个新值取代替旧值,直到得到满足某一4.7 常用算法1. 根据递推公式和初始条件推导出一个序列;2. 典型示例:例4-2,习题13;3. 这类题一般用数组解决会更简单。4.7.4 求数列4.7 常用算法1. 根据递推公式和初始条件推导出一个序列;4.7 常用算法典型示例:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论