C语言程序设计 教学课件 ppt 作者 吴赟婷 卢钢 第5章 C语言循环结构程序设计

上传人:E**** 文档编号:89423548 上传时间:2019-05-25 格式:PPT 页数:40 大小:789.50KB
返回 下载 相关 举报
C语言程序设计 教学课件 ppt 作者 吴赟婷 卢钢 第5章 C语言循环结构程序设计_第1页
第1页 / 共40页
C语言程序设计 教学课件 ppt 作者 吴赟婷 卢钢 第5章 C语言循环结构程序设计_第2页
第2页 / 共40页
C语言程序设计 教学课件 ppt 作者 吴赟婷 卢钢 第5章 C语言循环结构程序设计_第3页
第3页 / 共40页
C语言程序设计 教学课件 ppt 作者 吴赟婷 卢钢 第5章 C语言循环结构程序设计_第4页
第4页 / 共40页
C语言程序设计 教学课件 ppt 作者 吴赟婷 卢钢 第5章 C语言循环结构程序设计_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《C语言程序设计 教学课件 ppt 作者 吴赟婷 卢钢 第5章 C语言循环结构程序设计》由会员分享,可在线阅读,更多相关《C语言程序设计 教学课件 ppt 作者 吴赟婷 卢钢 第5章 C语言循环结构程序设计(40页珍藏版)》请在金锄头文库上搜索。

1、第5章 C语言循环结构程序设计,5.1 while循环语句 5.2 dowhile循环语句 5.3 for循环语句 5.4三种循环的比较 5.5 循环嵌套 5.6 break语句和continue语句 5.7循环语句程序设计举例,实际生活中经常会遇到在一段有限的时间内去做一件或一系列有规律重复性的事情,这种情况就是循环。在解决许多实际问题中,都要用到循环结构。例如:求若干个数之和;要输入全校学生的成绩等。循环结构是结构化程序设计的基本结构之一,绝大多数的应用程序都用到循环结构。因此熟练掌握循环结构的概念及使用是C语言程序设计最基本的要求。,5.1 while循环语句,while循环语句用来实现

2、“当型”循环结构,其一般形式如下: while(表达式) 语句,当表达式为非0值时,执行循环体,语句也可以是复合语句。其特点是:先判断表达式,后执行循环体。,循环体,例5-1,迭代 不断用新的值取代变量的旧值,或由旧值递推出变量的新值的过程。迭代与下列因素有关: 初值; (如:i=1 sum=0 ) 迭代公式; (如:sum=sum+i ;i+ ;) 迭代条件: (如:i=100),计算1+2+3+100的值并输出。,#include void main ( ) int i=1, sum=0; while (i=100) /*循环条件*/ sum+= i; /*不断迭代*/ i+=1; /*使

3、得循环趋于结束的语句*/ printf(“sum=%dn“,sum); ,输出:sum=5050,5.2 dowhile循环语句,dowhile语句是先执行循环体,然后判断表达式的值是否为真。其一般形式如下: do 语句 while(表达式);,该语句先执行循环体,再判断表达式的值。因此,循环体语句至少被执行一次。,分号,例5-2,利用dowhile语句计算n!(n=10)。,void main ( ) int i=1,t=1; do t*= i; i+; while (i=10); printf(“10 !=%dn“,t ); ,输出: 10!=3628800,5.3 for循环语句,for

4、语句是C语言所提供的功能更强、使用更灵活更广泛的一种循环语句,不仅可以用于循环次数已经确定的情况,而且还可以用于循环次数不确定而只给出循环条件或循环结束条件的情况。其一般形式如下: for(表达式1;表达式2;表达式3) 语句,执行的过程是:先求“表达式1”的值,再求“表达式2”的值,若其值为真(非零),则执行循环语句,循环语句执行完毕后,执行“表达式3”;若为假,则结束循环。,for语句最简单、最易理解的形式,for(循环变量赋初值;循环条件;循环变量增值) 循环体语句,例如:求1+2+3+4+100 main( ) int i, sum=0; for( i=1;i=100;i+ ) sum

5、=sum+i; printf(“sum=%d”,sum); ,printf(“%d”,i);,1.在整个循环过程中,“表达式1”只在循环开始时计算一次。 2. 3个表达式之间用“;”隔开。 3. 表达式1”和“表达式3”既可以是一个简单表达式,也可以是用逗号运算符连接起来的多个式子。例如:for(i=1,sum=0;i=100;sum=sum+i,i+); 4. for语句中的三个表达式都可以省略,但分号一定要保留。 省略表达式1,应在for 语句之前给循环变量赋初值。如以下形式: i=1; for( ;i=100;i+ ) sum=sum+i;,使用for语句应注意以下几点:, 省略表达式2

6、,则循环条件总为“真”,此时需在循环体中设置相应的语句来结束循环。如以下形式: for( i=1; ;i+ ) sum=sum+i; if (i=100) break; 省略表达式3,应在循环体内设置使循环趋于结 束的语句。如以下形式: for( i=1;i=100; ) sum=sum+i ; i+; 三个表达式都省略,则会产生死循环。,例5-3,输出20至100之内能被3整除但不能被7整除的数。,#include void main() int i; for(i=20;i=100;i+) if(i%3=0 ,5.4 三种循环的比较,while,dowhile,for,(1)上面已经介绍了三

7、种循环:while循环、dowhile循环和for循环,这几种循环都可以用来处理相同的问题,在一般情况下可以互相替换,但是功能和灵活程度是各不相同,for循环是功能最强、最灵活、经常使用到。例如:求1+2+3+100的值,分别用三种循环来求,核心代码为: 使用while循环: while(i=100) sum+=i; i+; 使用dowhile循环: do sum+=i; i+; while(i=100);, 使用for循环: for(i=1;i=100;i+) sum+=I; (2)while循环和for循环都要先判断循环条件是否为真,若为真才会执行循环体;而dowhile循环是先执行循环体

8、,再判断循环条件。因此,无论条件是否为真,循环体至少都会执行一次。 (3)三种循环都可以使用break语句来结束循环,用continue语句来终止本次循环。,5.5 循环嵌套,一个循环体内又包含另一个完整的循环结构称为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多层循环。 三种循环(while循环、do-while循环和for循环)可以互相嵌套,内外层循环不得使用相同的循环变量。 下面几种都是合法的形式: (1) while( ) (2) do (3) for(;) while( ) do for(;) while( ); while( );,例5-4,输出九九乘法表。,1*1=1 2*1=

9、2 2*2=4 3*1=3 3*2=6 3*3= 9 4*1=4 4*2=8 4*3=12 4*4=16 ,#include void main( ) int i, j; for (i=1;i=9;i+) for (j=1;j=i;j+) printf (“%d*%d=%d “,i,j,i*j); printf (“n“); ,5.6 break语句和continue语句,1.break break语句可以用来从循环体内跳出循环体,即提前结束循环,接着执行循环下面的语句 一般形式: break; 注意:break语句不能用于循环语句和switch语句之外的任何其他语句中。,switch(n)

10、case 1: case 2: x=10;break; case 3: ,for( i=1; ;i+ ) sum=sum+i; if (i=100) break; ,注 break语句跳出的不是 if语句,而是跳出包含此if语句的循环体或switch语句。,说明 在switch或循环语句嵌套使用的情况下,break 只能终止它所在switch或循环语句,而不能直接跳出(或终止)多层循环,如:,for() for() if() break; ,break;,#include void main() int i,s=0; for(i=1;i1000) break; printf(“s=%dn”,s

11、); ,例5-5,计算s=1+2+3+100,当s1000时,则退出循环。,2.continue 作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定. 一般形式: continue;,while( ) if () continue; ,for( ; ; ) if () continue; ,#include void main( ) int i ; for(i=100;i=200;i+) if( i%3= =0) continue; printf(“%5d”, i) ; ,例,把100至200之间的不能被3整除的数输出。,5.7 循环语句程序设计举例,例5-

12、7,输入一个整数,判断是否为素数。,分析:素数就是只能被1和自身整除的数。判断一个数a是不是素数,是用2和a之间所有的数来进行求余,看其是否能被整除,如果都不能整除,则认为该数是素数;如果该数能被2和a之间任何一个数整除,则提前结束循环。,#include“stdio.h“ void main() int a,i; scanf(“%d“, ,例5-8,输出如下图形:,* * * * * * *,#include“stdio.h“ void main() int i,j,k; for(i=1;i=4;i+) for(j=1;j=4-i;j+) printf(“ ”); for(k=1;k=2*i

13、-1;k+) printf(“*”); printf(“n”); for(i=1;i=3;i+) for(j=1;j=i;j+) printf(“ ”); for(k=1;k=7-2*i;k+) printf(“*”); printf(“n”); ,小 结, C语言提供了while、do.while、for三种语句来实现循环结构。for语句功能最强,使用最灵活。while、for是先判断条件后执行循环体,do.while则是先执行一次循环体,再判断条件。 break语句只能用在switch结构和循环结构当中,作用都是直接退出它所在的结构,而continue语句只能用在循环结构当中,作用是结束这

14、一次循环的执行。 while、do.while、for三种循环语句都可以用来解决同一个问题,一般情况下可以互相替代。,习 题,一、选择题 1下列叙述中正确的是( ) Abreak语句只能用于switch语句 B在switch语句中必须使用default Cbreak语句必须与switch语句中的case配对使用 D在switch语句中,不一定使用break语句 2有以下程序: main() int k=5; while(-k) printf(“%d“,k -= 3); printf(“n“); 执行后的输出结果是( ) A1 B2 C4 D死循环,习 题,3有以下程序: main() int

15、i; for(i=1; i=40; i+) if(i+%5=0) if(+i%8=0) printf(“%d “,i); printf(“n“); 执行后的输出结果是( ) A5 B24 C32 D40,习 题,4有以下程序: main() int k=5,n=0; do switch(k) case 1: case 3: n+=1; k-; break; default: n=0; k-; case 2: case 4: n+=2; k-; break; printf(“%d“,n); while(k0 程序运行后的输出结果是( ) A235 B0235 C02356 D2356,习 题,5有以下程序: main() int i,j; for(i=1; i4; i+

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号