第三章循环结构.ppt
《第三章循环结构.ppt》由会员分享,可在线阅读,更多相关《第三章循环结构.ppt(55页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 1 页,第三章 循环结构,什么是循环结构?循环语句语法练习,第 2 页,循环语句,提出问题,?,提问:从键盘上输入10个整数并求和,怎么编程?回答:在程序中写入10个scanf( )语句。提问:从键盘上输入500个整数并求和,怎么编程?回答:这个,嗯? 不会让我写500个.,老师:让我们换一个角度来看待这些问题, 以上问题的实质是:将scanf函数重复执行N遍。学生:对!好象是这么回事.老师:我们可以引出一个概念“循环”,简单而言:循环就是不断反复地执行同一段程序。学生:这就是我们今天要学的新东西?,第 3 页,循环语句,循环 反复执行同一段程序,直到满足一定的条件后才停止执行该段程序。C
2、语言中控制循环的语句: while for do-while,第 4 页,while语句,while语句格式while ( 表达式 ) 语句;说明:语句部分可以是简单语句,也可以是复合语句。while语句的执行流程,第 5 页,while语句-实例,例C5_1.C 从键盘输入10个整数,求这10个整数的和。 #include main ( ) int count,num,total; /* count:计数器,num:输入的整数 */ count=0; total=0; /* total:存放累加和 */ while ( count10 ) /* 循环控制条件 */ count +; /* 循
3、环体 */ printf (Enter the No.%d=, count); scanf (%d, ,第 6 页,while语句-实例,例:分析程序的运行结果 #include main ( ) int n=0;while ( n3 )printf (”n is %dn”,n);n+;printf(”Thats all this program does.n”);结果:程序将不停的打印“n is 0”,直至终止程序无法正常终止的程序,称为“死循环”。结论:在while语句循环体中,一定要有能够对循环控制条件产生影响的语句。避免出现“死循环”现象。,第 7 页,while语句-实例,例c5_2
4、:分析下列程序段 index=1;while ( index 5 )printf(”Good morning!n”);分析:程序段将无限制打印这条问候语句。因为循环中没有任何语句可以改变循环控制变量index的初值1例5_3:分析下列程序段 index=1;while( - index 5 )printf(”Good morning!n”);分析:仍有问题,程序改变了index的值,但方向错了。在index达到系统能够处理的最大负数时,将会产生下溢而终止程序。结论:循环体中必须有能够使循环正常停止的条件。,第 8 页,while语句-实例,例5_4.C:从键盘中读入一系列字符,直到输入字母a时
5、才停止。分析:由于不知道要输入的字符数量,只知道停止条件是输入字母a,则只能将循环控制条件设为ch!=a。 #include main( ) char ch= ; while ( ch!=a) putchar( ch = getch( ) );,改写: #include main( ) char ch; while ( (ch = getch( ) !=a ) ;,循环体为空语句,第 9 页,while语句-实例,例C5_5.C:对输入的行和字符进行计数。分析:n作为行结束标记的,DOS中有CTRL+Z作为文件结束标记 #define EOF -1#include main ( )int c,
6、nl=0,nc=0; while ( ( c = getchar( ) ) != EOF ) + nc; if ( c = n ) + nl; printf(chars=%d, lines=%dn, nc, nl);,定义文件结束标记 nl行计数器nc字符计数器 进行字符计数 如果找到n,则行计数,第 10 页,while语句-实例,例c5_6:求1到100的之和。 main ( ) int total=0, i=1; while ( i = 100 ) total = total + i;i +; printf(”Total=%dn, total);,变形1:while ( i total+
7、=i; +i 变形2:int i=0; while ( +i +i; 判断i 判断i +i; total+=i,第 11 页,while语句-实例,循环嵌套 在循环体中,又包含有循环语句,构成循环嵌套。例C5_7.C:输出下三角形乘法九九表。 1 2 3 4 5 6 7 8 9- 1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36 7 14 21 28 35 42 49 8 16 24 32 40 48 56 64 9 18 27 36 45 54 63 72 81 假设:行号为i ,列号为j,i=6j=5i*j,(1=i=9),(1=j=
8、i),则:第 i 行中要输出 j 个乘积,第 12 页,while语句-实例,#include main ( ) int i=1, j; /* i:行计数器 j:列计数器 */ while ( i = 9 ) /* 控制打印表头 */ printf ( %4d, i+ ); printf (n-n); i=1; while ( i= 9 ) j = 1; /* 列计数器置1 */ while ( j 1 时 #include main ( ) long int n=1; int i; for ( i = 1; i =10; i+ ) n = n * i; /* 求N! */printf ( %
9、2d!=%ldn, i, n); ,for语句最常用的形式for (初值;控制条件;增量) 语句;,第 16 页,for语句-实例,例C5_9.C:用for语句实现打印乘法九九表。 #include main ( ) int i, j;for ( i=1; i10; i+ ) printf (%4d,i); /* 打印表头 */ printf (n-n);for ( i=1; i10; i+ ) /* 控制打印表体 */ for ( j=1; j=i; j+ ) printf ( (j=i) ? %4dn : %4d , i*j);,输出函数printf中使用了“?”操作,含义相当于: if
10、( j=i ) printf (%4dn, i*j ); else printf (%4d, i*j );,第 17 页,for语句,for语句的变化形式for语句中的三个表达式中的任意一个都是可以省略的,但是分号不能省略。1.省略表达式2,则:for(表达式1; ;表达式3) 就形成了一个死循环。2.省略表达式1和表达式3,则:for(;表达式2;) 就等同于: while( 表达式 ) 据此结论:所有用while语句实现的循环都可以用for语句实现。3.表达式1、2、3全省略,则:for ( ; ; ) 就等同于: while (1),第 18 页,for语句-实例,语句中的逗号(,)运算
11、逗号(,)运算常见的三种用途是:1.在变量说明表中用来分隔变量,起分隔符的作用。如:int i, j, k, m3, *p;2.在函数的参数表中分隔参数。如:printf (n=%d, x=%dn, n, x);3.在语句中使用。其形式是:表达式n1,表达式n2; 用逗号分隔开的表达式从左到右进行计算,结果的类型和值是最右边表达式的类型和值。,第 19 页,for语句-实例,例C5_10.C:用逗号运算输出下列字符串。a z b y c x d w e v f u g t h s i r j q k p l o m n 分析:奇数位上的字符从a开始逐次递增,偶数位上的字符从z开始逐次递减 #i
12、nclude main ( ) char i, j; /* i:奇位字符 j:偶位字符 */* i从a开始逐次递增,j从z开始逐次递减 */ for ( i=a, j=z; ij; i+, j- ) printf(” %c %c”, i, j); /* 输出两个字符 */ printf(n);,第 20 页,do-while语句,do-while语句格式 do 语句 while ( 表达式 ) ;do-while语句的执行流程,循环控制条件,循环体,第 21 页,do-while语句,do-while语句特点 do-while与while和for的最大区别:do-while语句先执行循环体然后
13、再判断循环控制条件,而while和for却是先判断条件之后再执行循环体。使用do-while构成的循环,循环体部分至少要执行一次;而采用while和for构成的循环,循环体部分有可能一次也不会执行。,第 22 页,do-while语句-实例,例C5_11.C:输入一个正整数,要求以相反的顺序输出该数。例如:输入12345,则输出为54321。 基本思路:可以从个位开始,按位输出整数的每一位 main( ) unsigned int number; printf (Input the number:); scanf (%d, ,思考:使用while或for语句,如何实现?,两个程序有何区别?,前
14、面的程序可以处理数字0,后面的程序不能处理,第 23 页,do-while语句-实例,例C5_12.C 从键盘输入任意的字符,按下列规则进行分类计数。第一类 0,1,2,3,4,5,6,7,8,9第二类 +,-,*,/,%,=第三类 其它字符当输入字符时先计数然后停止接收输入。,第 24 页,do-while语句-实例,main( ) int class1=0, class2=0, class3=0; char ch; do putchar( ch=getch( ) ); switch (ch) case 0: case 1: case 2: case 3: case 4: case 5: c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 循环 结构
限制150内