北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第5章 循环结构程序设计

第5章循环结构程序设计 5.1循环语句概述 5,2for语句和 while语句 5.3直到型循环 do-while语句 54 break语句与 continue语包 55应用举例 良好的源程序书写习惯—注释(续) IReturn
第5章 循环结构程序设计 5.1 循环语句概述 5.2 for语句和while语句 5.3 直到型循环do-while语句 5.4 break语句与continue语句 5.5 应用举例 良好的源程序书写习惯──注释(续) [Return]

5.1循环语句概述 求1~100的累计和 根据已有的知识,可以用“1+2+.+-1003来求解,但显然很繁琐。 现在换个思路来考虑: 首先设置一个累计器sum,其初值为0,利用sum+=n来计算(n依 次取1、2、…、100),只要解决以下3个问题即可: (1)将n的初值置为1 (2)每执行1次“sum+=n后,n增1; (3)当n增到101时,停止计算。此时,sum的值就是1~100的累计 和 根据已有的知识,单独实现每一步都不难。但是,由于需要经常使 用这种重复计算结构(称为循环结构),C语言提供了3条循环语句来 实现,以简化、并规范循环结构程序设计 在C语言中,可用以下语句实现循环: (1)用fr语句 (2)用 do-while语句 (3)用 while语句
5.1 循环语句概述 求1~100的累计和。 根据已有的知识,可以用“1+2+……+100”来求解,但显然很繁琐。 现在换个思路来考虑: 首先设置一个累计器sum,其初值为0,利用sum += n来计算(n依 次取1、2、……、100),只要解决以下3个问题即可: (1)将n的初值置为1; (2)每执行1次“sum += n”后,n增1; (3)当n增到101时,停止计算。此时,sum的值就是1~100的累计 和。 根据已有的知识,单独实现每一步都不难。但是,由于需要经常使 用这种重复计算结构(称为循环结构),C语言提供了3条循环语句来 实现,以简化、并规范循环结构程序设计。 在C语言中,可用以下语句实现循环: (1)用for语句。 (2)用do-while语句。 (3)用while语句

(4)用goto语句和ⅲf语句构成循环。使用goto语句实现求解1~100累计和 的程序可以如下: main( f int n=l, sum=0 loop: sum +=n; n++ if(n<=100) goto loop printf( sum=%d\n, sum 其中“loop”'为语句标号(格式:标号:语句行),其命名遵循标识 符命名规则。goto语句格式:goto标号,功能为:使系统转向标号所在 的语句行执行。 注意:结构化程序设计方法,主张限制使用goto语句。因为滥用 goto语句,将会导致程序结构无规律、可读性差 另外,从功能上说,for语句可完全代替当型循环语句whie,所以 该语句也不是必需的 ReturnI
(4)用goto语句和if语句构成循环。使用goto语句实现求解1~100累计和 的程序可以如下: main() { int n=1, sum=0; loop: sum += n; n++; if (n<=100) goto loop; printf(“sum=%d\n”, sum); } 其中“loop:”为语句标号(格式:标号: 语句行),其命名遵循标识 符命名规则。goto语句格式:goto 标号,功能为:使系统转向标号所在 的语句行执行。 注意:结构化程序设计方法,主张限制使用goto语句。因为滥用 goto语句,将会导致程序结构无规律、可读性差。 另外,从功能上说,for语句可完全代替当型循环语句while,所以 该语句也不是必需的。 [Return]

52for语句和whil语句 在3条循环语句中,for语句最为灵活,不仅可用于循 环次数已经确定的情况,也可用于循环次数虽不确定、 但给出了循环继续条件的情况。 [案例51求1~100的累计和 案例代码文件名:A51.C* *程序功能:求1~100的累计和* maino i int i, sum=0 /*将累加器sum初始化为0* for(i=1;i<=100;计++)sm+=i;/*实现累加* printf("sum=%dn", sum) [程序演示 程序运行情况如下: sum=5050
5.2 for语句和while语句 在3条循环语句中,for语句最为灵活,不仅可用于循 环次数已经确定的情况,也可用于循环次数虽不确定、 但给出了循环继续条件的情况。 [案例5.1] 求1~100的累计和。 /*案例代码文件名:AL5_1.C*/ /*程序功能:求1~100的累计和*/ main() { int i,sum=0; /*将累加器sum初始化为0*/ for(i=1; i<=100; i++) sum += i; /*实现累加*/ printf("sum=%d\n",sum); } [程序演示] 程序运行情况如下: sum=5050

案例52]求n的阶乘n!(n=1*2**n) /*案例代码文件名:AL52C* *程序功能:求n!* main( f int i,n long fact=1 /*将累乘器fact初始化为1* printf( Input n: ) scanf(%d,&n) for(i-1; K<=n; 1++) fact *=1 /*实现累乘*/ printf("%d!=%ldn",n, fact) 程序演示 程序运行情况如下: Input n:5≌ 5!=120
[案例5.2] 求n的阶乘n!(n!=1*2*……*n)。 /*案例代码文件名:AL5_2.C*/ /*程序功能:求n!*/ main() { int i, n; long fact=1; /*将累乘器fact初始化为1*/ printf(“Input n: ”); scanf(“%d”, &n); for(i=1; i<=n; i++) fact *= i; /*实现累乘*/ printf("%d ! = %ld\n", n, fact); } [程序演示] 程序运行情况如下: Input n: 5↙ 5 ! = 120

1.for语句的一般格式 for(变量赋初值]:[循环继续条件]:[循环变量增值] 循环体语句组;} 2.for语句的执行过程 执行过程如图5-1所示 (1)求解“变量赋初值”表达式。 (2)求解“循环继续条件”表达式。如果其值非0,执 行(3);否则,转至(4)。 (3)执行循环体语句组,并求解“循环变量增值”表达 式,然后转向(2) (4)执行for语句的下一条语句 3.说明 (1)“变量赋初值”、“循环继续条件”和“循环变量 增值”部分均可缺省,甚至全部缺省,但其间的分号不能省 略
1.for语句的一般格式 for([变量赋初值];[循环继续条件];[循环变量增值]) { 循环体语句组;} 2.for语句的执行过程 执行过程如图5-1所示。 (1)求解“变量赋初值”表达式。 (2)求解“循环继续条件”表达式。如果其值非0,执 行(3);否则,转至(4)。 (3)执行循环体语句组,并求解“循环变量增值”表达 式,然后转向(2)。 (4)执行for语句的下一条语句。 3.说明 (1)“变量赋初值”、“循环继续条件”和“循环变量 增值”部分均可缺省,甚至全部缺省,但其间的分号不能省 略

(2)当循环体语句组仅由一条语句构成时,可以不 使用复合语句形式,如上例所示 (3)“循环变量赋初值”表达式,既可以是给循环 变量赋初值的赋值表达式,也可以是与此无关的其它表 达式(如逗号表达式)。 例如,for(Sum=0;i<=100;计++)sum+=i; for(sum=0,=1;i<=100;1++)sum+=i (4)“循环继续条件”部分是一个逻辑量,除一般 的关系(或逻辑)表达式外,也允许是数值(或字符) 表达式
(2)当循环体语句组仅由一条语句构成时,可以不 使用复合语句形式,如上例所示。 (3)“循环变量赋初值”表达式,既可以是给循环 变量赋初值的赋值表达式,也可以是与此无关的其它表 达式(如逗号表达式)。 例如,for(sum=0;i<=100;i++) sum += i; for(sum=0,i=1;i<=100;i++) sum += i; (4)“循环继续条件”部分是一个逻辑量,除一般 的关系(或逻辑)表达式外,也允许是数值(或字符) 表达式

4. while语句 (1)一般格式 while(循环继续条件) 循环体语句组 (2)执行过程 执行过程如图5-2所示 )求解“循环继续条件”表达式。如果其值为非0, 转2);否则转3) 2)执行循环体语句组,然后转1) 3)执行whle语句的下一条。 显然, while循环是for循环的一种简化形式(缺省 变量赋初值”和“循环变量增值”表达式)
4.while语句 (1)一般格式 while(循环继续条件) { 循环体语句组;} (2)执行过程 执行过程如图5-2所示。 1)求解“循环继续条件”表达式。如果其值为非0, 转2);否则转3)。 2)执行循环体语句组,然后转1)。 3)执行while语句的下一条。 显然,while循环是for循环的一种简化形式(缺省 “变量赋初值”和“循环变量增值”表达式)

[案例53]用whle语句求1~100的累计和 /*案例代码文件名:AL53C* *程序功能:求1~100的累计和* maino inti-=1-,sum-0;/*初始化循环控制变量i和累计器sum*/ while( K<=100) i sum +=1 /*实现累加* 1+十 *循环控制变量i增1*/ printf( sum=%d\n", sum) 程序演示 程序运行情况如下: sum=5050
[案例5.3] 用while语句求1~100的累计和。 /*案例代码文件名:AL5_3.C*/ /*程序功能:求1~100的累计和*/ main() { int i=1,sum=0; /*初始化循环控制变量i和累计器sum*/ while( i<=100 ) { sum += i; /*实现累加*/ i++; /*循环控制变量i增1*/ } printf(“sum=%d\n”,sum); } [程序演示] 程序运行情况如下: sum=5050

循环嵌套 (1)循环语句的循环体内,又包含另一个完整的循 环结构,称为循环的嵌套。循环嵌套的概念,对所有高 级语言都是一样的 (2)for语句和 while语句允许嵌套, do-while语句也 不例外。 Return
5.循环嵌套 (1)循环语句的循环体内,又包含另一个完整的循 环结构,称为循环的嵌套。循环嵌套的概念,对所有高 级语言都是一样的。 (2)for语句和while语句允许嵌套,do-while语句也 不例外。 [Return]
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第4章 选择结构程序设计.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第3章 顺序结构程序设计.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第3章 顺序结构程序设计.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第2章 数据类型、运算符与表达式.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第1章 C语言概述.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)电子教案的结构和使用说明.doc
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)封面与目录.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第六章 数组.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第四章 最简单的C程序设计.ppt
- 武汉职业技术学院:《Visual Basic程序设计》试卷七.doc
- 武汉职业技术学院:《Visual Basic程序设计》试卷A卷.doc
- 武汉职业技术学院:《Visual Basic程序设计》试卷六.doc
- 武汉职业技术学院:《Visual Basic程序设计》试卷B卷.doc
- 武汉职业技术学院:《Visual Basic程序设计》试卷五.doc
- 武汉职业技术学院:《Visual Basic程序设计》试卷四.doc
- 武汉职业技术学院:《Visual Basic程序设计》试卷二.doc
- 武汉职业技术学院:《Visual Basic程序设计》试卷三.doc
- 武汉职业技术学院:《Visual Basic程序设计》试卷一.doc
- 武汉职业技术学院:《Visual Basic程序设计》2006年度“国家精品课程VB”申报表.doc
- 武汉职业技术学院:《Visual Basic程序设计》第九章 文件.doc
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第6章 数组.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第6章(6-1)1维数组的定义和引用.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第7章 函数.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第8章 编译预处理.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第9章 指针.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第10章 结构与链表.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第11章 位运算.ppt
- 北京科技大学:《C语言程序设计》课程教学资源(PPT课件讲稿)第12章 文件.ppt
- 荆州职业技术学院:《电子商务概论》课程教学资源(教案)第一章 概述.doc
- 荆州职业技术学院:《电子商务概论》课程教学资源(教案)第二章 电子商务系统.doc
- 荆州职业技术学院:《电子商务概论》课程教学资源(教案)第三章 电子商务的技术基础.doc
- 荆州职业技术学院:《电子商务概论》课程教学资源(教案)第四章 电子商务安全技术.doc
- 荆州职业技术学院:《电子商务概论》课程教学资源(教案)第五章 电子商务支付技术.doc
- 荆州职业技术学院:《电子商务概论》课程教学资源(教案)第六章 电子商务与物流.doc
- 荆州职业技术学院:《电子商务概论》课程教学资源(教案)第七章 网络营销.doc
- 荆州职业技术学院:《电子商务概论》课程教学资源(教案)第八章 企业电子商务应用.doc
- 荆州职业技术学院:《电子商务概论》课程教学资源(教案)第九章 其它电子商务应用.doc
- 荆州职业技术学院:《电子商务概论》课程教学资源(PPT课件)第一章 概述.ppt
- 荆州职业技术学院:《电子商务概论》课程教学资源(PPT课件)第二章 电子商务系统.ppt
- 荆州职业技术学院:《电子商务概论》课程教学资源(PPT课件)第三章 电子商务的技术基础.ppt