当前位置:首页 >> 工学 >>

3


循环结构程序设计
教学内容 1 while语句 while语句 do-while语句 2 do-while语句 for语句 3 for语句 4 循环的嵌套 5 综合实例

循环结构程序设计
特点:有限次的重复某个操作。 特点:有限次的重复某个操作。 语言中,引入while while语句 do-while语 在C语言中,引入while语句 、do-while语 for语句循环结构来处理此类问题 语句循环结构来处理此类问题。 句和 for语句循环结构来处理此类问题。 While结构 结构: 1 While结构: (条件表达式 条件表达式) While (条件表达式) 语句序列; 语句序列;

例1:求1+2+3……+10 1:求1+2+3 +10
开始 S=0;i=1 i<=10? Y S<=S+i i i+1 N

(ch6_001A) )

Void main() {int S=0,i=1; while(i<10) {S=S+i; i++; }

输出S 输出S的值 结束

1 while语句 语句
例1:(ch6_001A) ch6_001A) S=0;i=1; While(i<10) { S=S+i; i++; }
循环体 对循环控制变量的修正 循环控制条件, 循环控制条件, i为循环控制变量 为循环控制变量

1 while语句 语句
循环结构的三个术语: 循环结构的三个术语: 1、循环条件:循环结构中的条件表达式如 循环条件: (i<10)其中 i<10就是循环条件 其中, 就是循环条件。 while (i<10)其中,i<10就是循环条件。 条件表达式非0 就做一次循环体。 条件表达式非0,就做一次循环体。 循环体: 2、循环体:在每个循环周期均要执行一次 的语句序列。 while下用 }括起来的 下用{ 的语句序列。如while下用{ }括起来的 语句序列。 语句序列。 循环控制变量: 3、循环控制变量:能够决定控制条件是真 是假的量。 是假的量。

1 while语句 语句
要写出一个正确的循环结构, 要写出一个正确的循环结构,对控制变量要做 三方面的工作: 三方面的工作: 对循环控制变量赋初值。 1、对循环控制变量赋初值。 将循环控制变量写入正确的控制条件。 2、将循环控制变量写入正确的控制条件。 对循环控制变量值的更新。 3、对循环控制变量值的更新。 如: s=0;i=1; /* 给x赋初值 */ 赋初值 while(i<10) /*条件 条件*/ 条件 {s=s+i; i++; /*对x的值做更新、调整 的值做更新、 对 的值做更新 调整*/ }

练习1: 练习 :求n! 练习2: 以内的奇数和、 练习 :求100以内的奇数和、偶数和。 以内的奇数和 偶数和。

2 Do…while语句 语句
While语句表达的是“当满足条件的时候, While语句表达的是“当满足条件的时候,做 语句表达的是 某事” 某事” Do…while语句表达的是“做某事, while语句表达的是 Do while语句表达的是“做某事,直到不满 足条件的时候为止” 足条件的时候为止” Do…while 结构: Do while 结构: Do {语句序列;} 语句序列; (条件表达式 条件表达式) While (条件表达式)

2 Do…while语句 语句
例1 CH6_001B: : s=0;i=1; do {s=s+i; i++;} while (i<=10)

S=0;i=1; While(i<=10) {S=S+i; i++; }

While与do-while的比较: 与 的比较: 的比较 后面的表达式一开始就为假的时候, 当while后面的表达式一开始就为假的时候, 后面的表达式一开始就为假的时候 while结构的循环体一次也不做,而do_while的 结构的循环体一次也不做, 结构的循环体一次也不做 的 循环体要做一次。 循环体要做一次。

2 Do…while语句 语句
例2:从键盘输入任意字符,直到输入‘!’时 从键盘输入任意字符,直到输入‘ 时 结束,并统计字符的个数(不包括‘ 结束,并统计字符的个数(不包括‘!’) ch6_002A使用while结构,ch4_002B使用 while结构 (ch6_002A使用while结构,ch4_002B使用 do-while结构 ch4_002C使用for结构 结构, 使用for结构) do-while结构, ch4_002C使用for结构)

/* ch6_002A 用while语句实现 语句实现 #include "stdio.h" main() {char c; int n=0; while(getchar()!='!') n++; printf("n=%d\n",n); } 

/* ch6_002B 语句实现*/ 用do while语句实现 语句实现 #include "stdio.h" main() {char c; int n=0; do { n++; } while(getchar()!='!'); printf("n=%d\n",n); }

3 for循环 循环
C语言中for循环能更好地体现循环的上述 语言中for循环能更好地体现循环的上述 for 三个要点:(循环控制变量的初始化 :(循环控制变量的初始化、 三个要点:(循环控制变量的初始化、循 环控制条件 循环控制变量的更新 条件、 更新) 环控制条件、循环控制变量的更新) for结构: for结构: for(初始化表达式;条件表达式2;修正表达式) 初始化表达式;条件表达式 ;修正表达式) 初始化表达式 { 循环体 }

3 for循环 循环
例如;上述求累加和的程序段可改写为用 例如;上述求累加和的程序段可改写为用for 结构完成,结构显得更为紧凑(ch6_001C) 结构完成,结构显得更为紧凑
给循环控制变量和相关变 量赋初值

循环条件

for(i=1,s=0;i<=10;i++) s=s+i;
循环体 给循环控制变量进 行修正

3 for循环 循环
几点说明: 几点说明:

1、表达式1和表达式 可为逗号表达式 如 、表达式 和表达式 和表达式3可为逗号表达式 for (i=0, j=1 ; j<n && i<n ; i++, j++) 2、若表达式1里的循环控制变量已经有初值,则表达式 、若表达式 里的循环控制变量已经有初值 则表达式1 里的循环控制变量已经有初值, 可省略。若循环体语句中有循环控制变量的修正语句, 可省略。若循环体语句中有循环控制变量的修正语句, 可省略表达式3。 可省略表达式 。 for (i=1,s=0; i<=10; ) 如 , { s+=i; i++; } 3、省略表达式 ,则为死循环,除非在语句中有条件用 、省略表达式2,则为死循环, break, return, goto, 或exit( )函数。 函数。 函数

3 for循环 循环
例2:从键盘输入任意字符,直到输入‘!’时 从键盘输入任意字符,直到输入‘ 时 结束,并统计字符的个数(不包括‘ 结束,并统计字符的个数(不包括‘!’) 使用for结构) for结构 (ch6_002C 使用for结构)
#include "stdio.h" main() {int n; for(n=0;getchar()!='!';n++) ; printf("n=%d\n",n); }

循环结构应用
pi的近似值 的近似值。 CH6_003) 例3: 求 pi的近似值。(CH6_003) Pi/4=1 1/3+1/5-1/7……,直到最后一项的 Pi/4=1-1/3+1/5-1/7 , 绝对值小于0.000001 为止。 绝对值小于0.000001 为止。

#include <stdio.h> CH6_003 #include <math.h> void main() { int s; float n,t,pi; t=1;pi=0;n=1.0;s=1; while (fabs(t)>1e-6) { pi=pi+t; n=n+2; s=-s; t=s/n; } pi=pi*4; printf("pi=%10.6f\n",pi); } 

循环结构应用
例4:猜数游戏(ch4_015) 猜数游戏(
编写一道猜数的程序, 编写一道猜数的程序,在程序中预设 一个数字, 一个数字,要求用户任意从键盘输入 一个价格(数字), ),由程序在屏幕上 一个价格(数字),由程序在屏幕上 给出“高了”或者“低了”的提示, 给出“高了”或者“低了”的提示, 当用户输入数字等于目标数, 当用户输入数字等于目标数,程序结 束。

开始
输入一个数字data 输入一个数字data
Y 输出提示信息: 输出提示信息: 高了, 高了,请重新输入

Data>goal?
Y

N

Data<goal? N
输出提示信息: 输出提示信息: 恭喜你答对了

输出提示信息: 输出提示信息: 低了请重新输入

Y

Data不等于goal? Data不等于goal? 不等于 N

结束

循环结构应用
#define GOAL 648 /*例4:猜数游戏。 ch6_004 */ 例 :猜数游戏。 #include <stdio.h> main() { int data; do { printf("Please input data:\n"); scanf(“%d”,&data);/*输入任意一个数字到 输入任意一个数字到data*/ 输入任意一个数字到 if (data>GOAL) printf("It's too big,please try again!\n"); else if(data<GOAL) printf("It's too small,please try again!\n"); else printf("You are right!Bye-bye!"); } while (data!=GOAL); }

循环结构作业(第1部分)
Xunhuan01: 求两个正整数的最小公倍数 Xunhuan02: 任意输入一个正整数,将它 逆序打印出来。如:输入12345,则输出 54321,输入234,则输出432。 Xunhuan03:下面的公式可以用来计算圆周 Xunhuan03 率PI的近似值: PI/8=1/(1*3)+1/(5*7)+1/(9*11) +…… 请编程序计算公式的前15项,看PI的 近似值是多少 n个a Xunhuan04:求Sn=a+aa+aaa+aaaa……, 其中a是一个数字,n由键盘输入。


相关文章:
3 - 常用美国统计网站.doc
3 - 常用美国统计网站 - 美国普查局 http://www.census.g
3-网络经济与电子商务-2016.9.24_图文.ppt
3-网络经济与电子商务-2016.9.24 - 电子商务概论 第二章 网络经济与
第3章答案.txt
3章答案 - 第章 CH3CH2C 2 烯烃和炔烃习题 (2) 对称甲基异丙基乙烯 1 2 3 4 5 用系统命名法命名下列各化合物: CHCH3 2 3 4 (1) 1 CH C...
理论力学习题(3)_图文.ppt
理论力学习题(3) - 3.1 半径为 r 的光滑半球形碗,固定在水平面上, 一
模电习题解答3章.pdf
模电习题解答3章 - 3.2 习题解答 3-1 选择填空 1. 场效应管 g、s
-|-3|=( )_答案_百度高考.doc
-|-3|=( ) A-3 B- C D3正确答案及相关解析 正确答案 A 解析 解:根据负数的绝对值等于它的相反数,得-|-3|=-3. 故选A. ...
酒石酸是某种降压药物的载体,可用1,3-丁二烯为原料合成....doc
酒石酸是某种降压药物的载体,可用1,3-丁二烯为原料合成,其流程如下:已知:①② D的分子组成是C4H8O2Cl2,核磁共振氢谱显示其有个峰。(1)D中所含官能团的...
物理习题3.doc
物理习题3 - 第章 分子物理学 1.对于一定量的气体,当温度不变时,气体的压
幼儿2、3、4、5、6的分成与10以内算术题.doc
幼儿2、3、4、5、6的分成与10以内算术题 - 图形的需要分别画出所需的图形的个数,数字的用数字来表示 2 3 4 5 6 算式 1+1= 0+1= 4+1= 3+2= 6...
2004考研数学试题详细解析--3.doc
完全类似的例题见《数学复习指南》 完全类似的例题见《数学复习指南》P36 例 1.60,P43 第 1(3)题,P44 第 2(10)题, , 题题 《数学题型集粹与练习题集 ...
3#_论文.pdf
研究?开发 弹性体C,H20IN15A0 8E2L5A,2S5T(4O)M:4E2R~IC4S5 3#标准油对 丁腈 橡胶性能的影响 游海 军, 张保 岗, 马楠楠 ,巩 丽,刘 莉 ( ...
3. 2015年中国企业共对“一带一路”相关的49个国家进行....doc
3. 2015年中国企业共对“一带一路”相关的49个国家进行了直接投资,投资额合
水力学习题评讲3_图文.ppt
水力学习题评讲3 - 《水力学》重庆大学出版社,主编:肖明葵。课后习题答案。第
大学物理测试卷3.doc
大学物理测试卷3 - 测试卷 3 一、(6 题,每题 5 分,共 30 分)简要
3五位一体总体布局、内涵.doc
3五位一体总体布局、内涵 - 五位一体的内容和内涵 将生态文明建设与经济建设、政
金蝶K3培训详细教程.doc
金蝶K3培训详细教程 - K/3 系统项目实施文档 文档号:XAKDSS H
战略管控体系三个体系和五个支撑.doc
(3)没有制定出适合为制定长期计划莫定基础的公司目标。 (4)没有适度参与主要员
三年级上册科学知识点.doc
3.拓印一片(树叶)的方法是:用较浓的水粉画颜色,均匀地涂到叶的背面上,盖上白纸
无机材料科学基础综合测试3.doc
无机材料科学基础综合测试3 - 测试 一、名词解释(每小题 3 分,共 18 分) 1.同质多晶现象 2.静电键强度 3.非均态核化 4.结构驰豫 5.重构表面 6....
科目三教程.doc
听到“请起 步”后要做到:一踩、二挂、打转向、四鸣喇叭、五看左右、六松手刹。渐至 3 档,20 迈以上。 2“前方直行通过路口”听 ...