循环控制dowhile

上传人:xy****7 文档编号:94168888 上传时间:2019-08-03 格式:PPT 页数:26 大小:225.50KB
返回 下载 相关 举报
循环控制dowhile_第1页
第1页 / 共26页
循环控制dowhile_第2页
第2页 / 共26页
循环控制dowhile_第3页
第3页 / 共26页
循环控制dowhile_第4页
第4页 / 共26页
循环控制dowhile_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《循环控制dowhile》由会员分享,可在线阅读,更多相关《循环控制dowhile(26页珍藏版)》请在金锄头文库上搜索。

1、第4章 循环控制,C语言程序设计,课程讲义,上一章节课程回顾,while语句,1、while语句格式,2、while循环的执行过程,while循环,条件 循环 次数,Y,?,Y 执行 1,Y 执行 3,Y 执行 2,N 结束,Y,Y,N,3次,在循环入口处判断 当条件为真时执行循环,本节内容,do -while语句,这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真, 如果为真则继续循环;如果为假, 则终止循环。因此, do-while循环至少要执行一次循环语句。,4.3 do-while语句,1、 do-while语句的格式,一般形式为: do 语句组; wh

2、ile(表达式);,注意:,1、do和while都是关键字,不可以省略。 2、 while后面的括号不能省略,括号内的表达式可以是任意类型的表达式:条件表达式、逻辑表达式、算术表达式、和常量等,但一般是条件或者逻辑表达式。 3、用一对花括号括起来的语句称为复合语句, 如果只有一条语句时可以省略花括号,也就是说循环体只有一条语句。 4、do-while语句中while(表达式)语句后面的分号“;”必不可少,否则就会出错。 5、while与do-while执行的流程和执行的次数是不一样的。,直到型循环,在循环出口处判断,当条件为真时继续执行循环,直到条件为假时为止。,条件 循环 次数,执行 1,Y

3、 执行 3,Y 执行 2,N 结束,Y,Y,Y,Y 执行 4,N,4.3 do-while语句,2、直到型循环的执行过程,特点: 循环至少执行一次,4.3 do-while语句,3、 do-while语句流程图,.传统流程图,.N-S流程图,它先执行循环中的语句,然后再判断表达式是否为真, 如果为真则继续循环;如果为假, 则终止循环。因此, do-while循环至少要执行一次循环语句。其执行过程可用下图表示。,4.3 do-while语句,用传统流程图和N-S结构流程图表示算法,见图:,【例1】,S=,用do-while语句求,main() int i,sum=0; i=1; do sum=s

4、um+i; i+; while(i=100); printf(“%dn“,sum); ,程序实现,4.3 do-while语句,main() int sum=0,i; i=1; while(i=10) sum=sum+i; i+; printf(“sum=%d”,sum); ,使用while语句求i的累加和,4、do-while与while的比较,【例2】,4.3 do-while语句,main() int sum=0,i; i=1; do sum=sum+i; i+; while(i=10); printf(“sum=%d”,sum); ,使用do-while语句求i的累加和,【例3】,4.

5、3 do-while语句,main() int sum=0,i; i=11; while(i=10) sum=sum+i; i+; printf(“sum=%d”,sum); ,使用while语句求i的累加和,4、do-while与while的比较,【例4】,4.3 do-while语句,(2)main() int sum=0,i; i=11; do sum=sum+i; i+; while(i=10); printf(“sum=%d”,sum); ,使用do-while语句求i的累加和,【例5】,4.3 do-while语句,main() int sum=0,i; scanf(“%d”, ,

6、使用while语句求i的累加和,4、do-while与while的比较,当输入的i小于等于10时,输出sum的值,当输入的i大于10时,则sum=0,【例6】,4.3 do-while语句,(2)main() int sum=0,i; scanf(“%d”, ,使用do-while语句求i的累加和,当输入的i小于等于10时,输出sum的值,当输入的i大于10时,则sum=i,【例7】,实例【1】,一名儿童喜欢吃糖,第一天吃了一颗,第二天吃了二颗,第三天吃了三颗,以后每天增加一颗,请帮他算算10天总共吃了多少颗。 解题步骤: 1、定义一个累加变量并赋初值为0。 2、每天的糖数比前一天增加一颗。

7、3、将每天的糖数累加到变量中。 4、输出总糖数。,实例【2】,输入一个整数n,求解n的阶乘n! n!=n*(n-1)*(n-2)*(n-3)*2*1 解题步骤: 1、定义一个变量n,用来保存输入的整数。 2、定义一个长整形的变量k=1,用来保存乘积。 3、输入整数n的值。 4、n的值依次减小。 5、循环的把n的值累乘积到变量k中。,程序求解,#include”stdio.h” main() long int k, n; scanf(“%d”, ,练习【1】,试用while编写程序,判断2000-2010之间的每一个年是否是闰年,是闰年的输出“xxxx is leap year”,不是闰年的输出

8、“xxxx is not leap year”, 例如: “2000 is leap year” “2001 is not leap year” . “2010 is not leap year”,问题解析,对这类问题,我们可以找出其中的三大关键是: 1、从什么地方开始; 2、什么时候结束; 3、反复做什么。,我们可以总结为: 初始值 循环做的条件 循环做的事情,循环体:通常我们把循环做的事情称为循环体。,对于判断闰年的问题: 1、从哪里开始? 2、什么时候结束? 3、反复做的事情? X=2000 /*从这里开始*/ do /* 如果条件成立 则结束*/ 1、 判断x年是不是闰年 。/*重复要做的事情*/ 2、 ? /* 判断完当前年,指向下一年*/ While(x=2500) ;,从2000年开始,到2010年结束,判断某年是不是闰年,练习2,一、计算一个住户一年的煤气费用的总和(每月煤气费用由键盘输入) 解题步骤: 1、定义一个变量存放每个月的煤气费用 2、循环输入12个月的煤气费用总和。 3、计算12个月费用的总和。 4、输出总费用。,

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

当前位置:首页 > 大杂烩/其它

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