chapter5-循环控制流程

合集下载

5第五章 循环控

5第五章 循环控

第六章循环控制(6.1—6.5)
(2学时)
一、教学目的及要求
本节课是C语言程序设计中的重点之一,要求学生熟练循环结构的概念,While、Do—while、for语句的一般形式、流程图、执行过程,并能对三种结构进行比较,能熟练运用到综合例题中。

二、教学重点及难点
重点:1.While 语句的执行过程及while语句的应用
2.Do--while语句的执行过程及while语句的应用
3.for语句的执行过程及应用
难点:1.while语句的应用
2.Do--while语句应用
3.for语句的应用
三、教学手段
板书与多媒体课件演示相结合
四、教学方法
启发式教学、讲解、演示
五、作业
1、习题册5.1—5.6,5.16—5.18, 5.26—5.30 , 5.64—5.67
2、输入一行字符,分别统计出其中英文字母、空格、数字、和其他字符的个数。

3、打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。

例如153就是一水仙花数。

153=13+53+33
六、参考资料
1、王明福、乌云高娃主编《C语言程序设计教程》第四章
2、苏小红,陈惠鹏,孙志岗等《C 语言程序设计教程》第三章
七、教学内容与教学设计。

C语言程序设计第5单元

C语言程序设计第5单元

例5.2流程图
N
8
5.1 while语句
程序代码: #include<stdio.h> main() { int i=1,n;
float fac=1; printf("please input an integer>=0:\n"); scanf("%d",&n); if(n==0||n==1)
printf("factorial is 1.\n"); else
int i,sum=0,score; float ave=0; printf("\n计算学生总成绩和平 均成绩\n"); printf("请输入10名学生的成 绩:\n");
for(i=1;i<=10;i++) { scanf("%d",&score); sum=sum+score; } ave=sum/10.0; printf("总成绩为%d 平均成绩为
1. break语句
出现在循环体中的break语句使循环结束。若在多层循环体 中使用break语句,则只结束本层循环。
【例5.11】使用for语句输出50个“*”,使用break控制数量。
#include <stdio.h>
main()
{
int i;
for(i=1;;i++)
{
if(i>50) break;
方法三:
#include "stdio.h"
int main()
{
int i=1;
for(;i<=10;)
{

第六章 循环控制

第六章 循环控制

对下半部每一行:$数+空格数=列数(n) 行数 $数 空格数(单边) ㄩ$ $ $ $ $ 1 n-1*2 1 ㄩㄩ$ $ $ 2 n-2*2 2 ㄩㄩㄩ$ 3 n-3*2 3 i n-i*2 i
分析:分上下两部分考虑
上一页
5 下一页 返回上一级
#include <stdio.h> void main( ) { int n_blank, n_dollar, i, j, n, m; scanf(“%d”, &n);/*输入图案行数数目(奇数)*/ m=(n+1)/2; /*图案上半部的行数数目*/
循环嵌套
一个循环体内包含另一个完整的循环结构, 称为循环的嵌套。while循环、do-while循环和
for循环可以互相嵌套。
while() do do for(;;) { for(;;) {┋ while() {┋ {┋ do ┋ {┋ {┋ do while() for(;;) for(;;) {… } while() {… } {} while(); {} {┋ } while(); {… } ┋ } } ┋ } } } } while(); while();
上一页
下一页 返回上一级
for (i = 1; i < m; i++) /*下半部行控制,总共m-1行*/ { n_blank = i; /* i行的空格数目*/ n_dollar = n – 2 * i; /*i行的$数目*/ for (j = 0; j < n_blank; j++) putchar(‘ㄩ‘); /*输出i行空格*/ for (j = 0; j < n_dollar; j++) putchar(‘$’); /*输出i行$*/ putchar(‘\n’); /*换行*/ }

《流程控制模块——循环语句的应用》参考教案

《流程控制模块——循环语句的应用》参考教案

流程控制模块——循环语句的应用【教学目标】1、知识与技能目标:了解流程控制模块;学会循环语句的使用方法。

2、过程与方法目标:通过学生自学、讨论、交流、汇报等活动,培养学生探究、分析、归纳、协作等综合能力。

3、情感态度与价值观目标:培养学生对机器人的浓厚兴趣,通过小组合作自学,培养学生合作学习的意识和探索研究的精神。

【教学重点、难点】教学重点:循环语句的使用方法。

教学难点:循环语句的使用方法。

【课时安排】1课时【教学过程】1、任务驱动,导入新课流程图描述了机器人解决问题的过程,而对应的就产生了流程控制模块,流程控制模块是整个编程的骨架,有了流程控制模块就可以添加我们设计程序了。

流程控制模块主要包括条件判断模块、条件循环模块、多次循环模块、永久循环模块。

使用好这些模块是我们进行机器人编程的基础。

今天就让我们学习其中的循环语句的应用。

2、探索自学、获取新知一、循环语句的应用当一个动作直行了几次或者几十次的时候,就需要循环语句了。

(一)多次循环语句的应用例:设计一组程序,让机器人走一个四边形。

学生自学课本,小组讨论操作步骤。

学生上机尝试操作,教师辅导。

学生汇报演示方法与过程,学生互评。

教师总结(二)永久循环语句的应用永久循环的使用与多次循环的区别,在于永久循环语句没有循环次数输入框。

动手试一试:用永久循环命令来代替例1程序中的多次循环命令,其他条件不变,到仿真界面中看一看机器人如何运动。

学生上机尝试操作,教师辅导。

学生汇报演示方法与过程,学生互评。

教师总结(三)条件循环语句例:用条件循环语句设计组程序,让机器人前进、右转。

当条件成真时,就让机器人停止运动。

学生自学课本,小组讨论操作步骤。

学生上机尝试操作,教师辅导。

学生汇报演示方法与过程,学生互评。

教师总结4、基本应用、巩固练习学生小组合作一起作课后练习题。

5、小结今天你有什么收获吗?板书设计。

生化危机3图文攻略游戏生化危机5Chapter5-6详尽图文攻略

生化危机3图文攻略游戏生化危机5Chapter5-6详尽图文攻略

生化危机3图文攻略游戏生化危机5Chapter5-6详尽图文攻略Chapter5-11-前走来到尽头处开门继续前进,左边的房间里有补给,拿完出来进前面的门2-一路前进,来到转把门前,转动门把后开门进去,调查前面的装置进入剧情,剧情后打破旁边的玻璃继续前进3-前走可以看到很多动物被关在笼子里,来到拐角处即可看到两只猎尸者干掉后左走,转动门把开门继续前进4-走上楼梯来到门前,与黑妹配合开门,前走就可以看到左边的封闭室里有很多猎尸者,这里先无视它们5-来到尽头的门前,与黑妹配合踢开门,门一开它们自然就冲过来了,来到电梯处按下电梯,等一会电梯就上来了6-电梯上来后马上进入电梯,把黑妹一起叫过来,别跟它们浪费太多时间跟弹药7-出电梯前走进入剧情,连续的剧情后进入BOSS战(打法很简单,打两只脚,用威力强一点的武器打会快很多,脚打几下BOSS就会进入气绝状态,快速跑过去使用QTE,反复3次即可干掉BOSS,时间拖的久的话BOSS会招一群小蜜蜂,比较碍事)8-干掉后进入剧情,剧情后Chapter5-1结束Chapter5-21-前走开门,在开门前走即可看到前方3个雇佣兵,用狙击枪干掉后继续前进2-开门后还会发现很多雇佣兵,数量比较多,如果雷够多的话就多用3-都干掉后来到门前与黑妹配合开门,开门还会看到很多雇佣兵+丧尸,都干掉后来到电梯处,进入电梯里进入剧情4-剧情后前走会看到很多猎尸者,无视它们直接冲过去就可以,开门来到一间旧工厂,这里丧尸跟雇佣兵也比较多5-先清理掉杂兵,清光后顺着中间的传送带过去,来到尽头处右走走上楼梯,开门来到下一区域6-这里也是要利用传送带来过去,这里也有不少杂兵,这里的传送带上是油桶,所以要注意点,不要被敌人利用这些油桶来打你7-来到下一区域后先来到中间的位置,调查装置后回走,回去的路想会碰到新型敌人,非常抗打,不过还在只出现一只,干掉后来到地图提示点位置,调查装置启动传送带,传送带旁有一把新枪(图1)顺着传送带一路过,传送带的右侧有箱子,左侧则是丧尸的尸体,不过不光是尸体还有活着的,踩到它的话它就会起来咬你,这里只能走左侧,右侧有箱子是过不去的,走蛇型路线即可,过去后来到尽头处开门进入剧情8-剧情后进入BOSS战(利用喷火枪可以非常轻松,要想毫发无伤的话就别贪,其他的没什么好说的,BOSS的招起手都很明显,非常容易闪) 9-干掉后Chapter5-2结束Chapter5-31-关卡开始后前走开门,开门过去后对面几个雇佣兵,先用狙击枪干掉他们2-干掉后换上散弹枪前走来到拐角处,会出现上一关碰到的那类虫型敌人,用散弹轰吧,命中一下就会漏出核心部份3-瞄准了打就行,注意别离的太近,离的太近被抓到的话直接被秒,解决掉这只后跳过去有几个雇佣兵,解决掉后拐角处还有一只,还是用散弹轰吧4-干掉后一路来到(图1)的位置,调查装置后没反映,之后左走开门进去,调查装置(图2)后返回图1处再调查装置即可5-调查完进入剧情,剧情后传送带可以用了,不过上面有3个丧尸,干掉后让黑妹站上去,控制传送带将她送过去6-黑妹过去后用狙击枪掩护她,将她身边的几个丧尸干掉后在把远端的狙击手干掉,之后黑妹会将传送带送回来7-站上去即可与她会合,会合后前走有大量的丧尸+雇佣兵,而且RPG就有4,5个,时刻注意找掩护,一但被RPG轰到就是重来了游戏生化危机5Chapter5-6详尽图文攻略8-这里的清光后开门一路走来到地图提示点位置,开门后这里有很多补给9-补给拿完了后前走来到5-1BOSS时的场地,控制旁边电脑的机关后开始往上升,升的途中会遭遇两次敌人的反击,第一次敌人会把升降器关掉,第二次敌人会降慢升降器的速度,两次都要快速用狙击枪干掉控制机器的敌人,上到顶层后楼梯处有很多雇佣兵,都解决掉后走上楼梯来到尽头处,开门来到遗迹10-前走来到右上角把电源关掉,来到左侧电梯旁调查装置把电梯升上来,控制电梯将她送上去,她上去后会出现一堆猎尸者,掩护她到达屋子即可,不要一直打,不然等它们跳下来被抓到就是被秒,门锁打开后快速冲进去调查装置把桥放下来11-之后快速冲出屋子一路过去走到尽头开门进入剧情,剧情后进入BOSS战,第一阶段是2对2,不要向JILL开枪,近身在她背对你时按X 即可抓住她,快速连打A键后让黑妹过来帮忙,摔几次后进入剧情,W哥把咱逼到了门外,这里不要跟W哥硬拼,暂时是没法拼,他两招即可送你回家,从另一边饶回到大厅里,继续抓JILL,再抓几次后进入剧情,剧情后进入第二阶段12-第二阶段是1对2,这里就很简单了,一直抓JILL即可,抓住了就连打A,成功了黑妹就会射击JILL的弱点部位,然后摔出去,这时控制Chris过去再补抓(按X)重复几次即可拿掉控制JILL的控制器13-拿掉后进入剧情,剧情后Chapter5-3结束。

chapter5程序的基本结构和语句

chapter5程序的基本结构和语句

#include <stdio.h> main() { float h, w, t;
例4.5 用在else子句中 嵌入if语句的形式编程
当t < 18时,为低体重; 当18 ≤ t < 25时,为正常体重; 当25 < t < 27时,为超重体重; 当t ≥ 27时,为肥胖。
printf("Please enter h,w:"); scanf("%f, %f", &h, &w); t = w / (h * h);
printf("Please enter your friend's age:"); scanf("%d", &hisAge); /*输入你朋友的年龄hisAge*/
max = (yourAge >= hisAge) ? yourAge : hisAge;
printf("The older age is = %d\n", max);
t = w / (h * h);
if (t < 27) { 18 25 27 if (t < 25) { if (t < 18) printf("t=%f\tLower weight!\n", t); else printf("t=%f\tStandard weight!\n", t); } else printf("t=%f\tHigher weight!\n", t); } else printf("t=%f\tToo fat!\n", t); }
18
例 #include <stdio.h> 4.5 用在if子句中嵌入if main() 语句的形式编程 { float h, w, t; 当t < 18时,为低体重; printf("Please enter h,w:"); ≤ t < 25时,为正常体重; 当18 scanf("%f, %f", &h, &w); 当25 < t < 27时,为超重体重; t = w / (h * h); 当t ≥ 27时,为肥胖。 if (t < 18) {printf("t=%f\tLower weight!\n", t);} 18 25 27 else {if (t < 25) { printf("t=%f\tStandard weight!\n", t); } else {if (t < 27) {printf("t=%f\tHigher weight!\n", t);} else {printf("t=%f\tToo fat!\n", t);} } } 19 }

第五章循环控制-.ppt

第五章循环控制-.ppt

下列程序的输出结果为
void main() {int i=5,j;
j=i++;
j=++i;
printf(“i=%d,j=%d\n”,i,j);
}
程序结果:
i=6,j=5
i=6,j=6
4)多用于循环语句中,使变量自增或者自减,也用于指针 变量,使指针指向下一个或者前一个地址。
例如前例中:
#include <stdio.h> void main() {
i=i+1; }}
1、循环结构之 ——while语句
形式: while (条件)
{ 循环体 }
1、循环结构之 ——while语句
用来实现“当型”循环 形式:
流程图:
while (条件) {

循环体
条件p
}
真 循环体
后续语句
功能:在程序遇到while时,首 先检查条件是否成立,若成立则 执行循环体语句,然后再去检查 条件,若条件仍然成立则继续执 行循环体,依次反复,直到某个 时刻条件不再成立,则退出循环 执行后续语句。
1:编写一个猜数的小游戏。 游戏规则:由计算机随机产生一个100以内的整数,用户猜该数是 多少,如果没有猜对,则系统提示“太大”或者“太小”,然后继 续猜。直到猜对为止。(guess.c)
引申练习:可以玩多次的猜数游戏,知道不想玩为止。
2:编程进行100以内的四则运算练习。并统计做题的总数、答 对题的数目和答错题的数目。(opration.c)
i++; } printf(“s=%d\n”,s);
}
练习:求p=5!
pS==10,i=1 假
i<=1500 真

第4讲 循环控制30页PPT

第4讲 循环控制30页PPT

输出:
5050
24.05.2020
13
100
例4-2 用while语句求 n n 1
main() {
int i,sum=0; i=1; while(i<=100)
{ sum=sum+i; i++; } printf("%d\n",sum); }
传统流程图
输出:
5050
24.05.2020
计算机与信息工程分院
例4-4 while和do-while循环比较
main() {int sum=0,i; scanf(“%d”,&i); while(i<=10)
{sum=sum+i; i++; } printf(“sum=%d”,sum); }
main() {int sum=0,i; scanf(“%d”,&i); do
分类:
循环体
1)用goto语句和if语句构成循环;
2)用while语句;
3)用do-while语句;
4)用for语句
24.05.2020
返回主菜单
2
2.循环控制语句(1)
计算机与信息工程分院
2.1 goto语句 一般形式: goto 语句标号;
由字母、数字和下划线组 成,不能使用整数
例 4-1
24.05.2020
2.循环控制语句(5)
2.5 几种循环的比较
1)四种循环都可以用来处理同一个问题,一般可 以互相代替。但一般不提倡用goto型循环。
2)while和do-while循环,循环体中应包括使循环 趋于结束的语句。for语句功能最强。
3)用while和do-while循环时,循环变量初始化的 操作应在while和do-while语句之前完成,而 for语句可以在表达式1中实现循环变量的初始 化。

循环控制

循环控制
21
循环控制
打印图形。 [例] 打印图形。 * *** ***** ******* ********* *********** ************* ***************
循环的嵌套
分析: 分析: i:1~ 行的控制 i:1~8 '*'的个数 与当前行的关系j=2*i 的个数j j=2*i'*'的个数j与当前行的关系j=2*i-1 '*'前面的空格 与行的关系: 前面的空格k '*'前面的空格k与行的关系: –开始时,第一行有8个空格 开始时, 开始时 第一行有8 –每多一行,少一个空格k=8-i 每多一行, k=8每多一行 少一个空格k=8 while (i<=8) (k=1,k<=8{for (k=1,k<=8-i,k++) 输出空格; 输出空格; (j=1,j<=(2*ifor (j=1,j<=(2*i-1) 输出* 输出* }
do-while语句 do-while语句
语句 非 0(真) 表达式 0 (假)
后面的表达式的第一次的值为"真 时 ① 当 while 后面的表达式的第一次的值为 真"时,两 种循环得到的结果相同。否则,二者结果不相同。 种循环得到的结果相同。否则,二者结果不相同。 中的循环体至少执行一次, ② do while 中的循环体至少执行一次,而 while 语句中 的循环语句可能一次都不执行。 的循环语句可能一次都不执行。
求解表达式1
for语句 for语句
表达式2 真 语句 求解表达式3

For语句的 下一语句
14
循环控制
for语句 for语句
说明: 说明: 语句的一般形式中的"表达式 可以省略, 表达式1"可以省略 ① 语句的一般形式中的 表达式 可以省略,此时应在语 句之前给循环变量赋初值(注意!省略表达式1时 句之前给循环变量赋初值(注意!省略表达式 时,其 后的分号不能省略) 后的分号不能省略); – 如:for (; i<=100;i++) sum=sum+i; 如果表达式2省略 即不判断循环条件, 省略, ② 如果表达式2省略,即不判断循环条件,循环无终止地 进行下去; 进行下去 – 如:for (i=1; ; i++) sum=sum+1; 表达式3也可以省略 也可以省略, ③ 表达式 也可以省略,但此时应另外设法保证循环能正 常结束; 常结束 – 如:for (i=1;i<=100; ) {sum=sum+i; i++}

7_循环控制方法白PPT精品文档17页

7_循环控制方法白PPT精品文档17页
编程将最大数送入max单元。
…… mov si,offset data mov al,[si] again: inc si cmp si,offset dtend ja load cmp al,[si] ja again mov al,[si] jmp again load: mov max,al ……
结果计数器加1
地址指针增量
plus:
and al,al jns plus inc dx inc bx loop next
N 处理完? Y
mov rlt,dx ……
保存结果
2.寄存器终值控制法:寄存器存放初值,循环过程中有
规律变化,达到终值时退出。
例7.3:内存data开始存放若干个字
节无符号数,数据末地址为dtend,
置数据指针 取一个数据放al
地址指针增量
指针>末址? Y
Y

N
al>(指针)?
N (指针)放al
保存结果
3.条件控制法:利用问题本身的结束条件控制循环 例7.4:内存data字单元存放一个完全平方数,编程求其 平方根,并存入root单元。 算法:从1开始连续i个奇数的和是i的平方N。 从N中减去从1开始的连续奇数,直到N为0,此时减去 的奇数的个数即为所求。
分析 循环控制方法:计数法 循环体:判断一个数为奇?偶?能被4整除?
已知密码由英文字母A,B,C,D,……,Z组成,最后以"$"结 束,且以ASCII码形式存在内存cipher开始的单元。统 计个字母在此件密码中出现的次数,并依次存入chrfq开 始的内存单元。
分析
循环控制方法:寄存器终值法
循环体:
m执o行v时a间l,d短at:a;选3择、执1行0 时间短m的o寻v 址al方,d式ata ;3、10

一、流程控制控制程序中语句的执行顺序.二、流程控制方式_顺序....ppt

一、流程控制控制程序中语句的执行顺序.二、流程控制方式_顺序....ppt
else if(k==4||k==5) cout<< ’ B ’;
else cout<< ’ C ’;
第四章 语句和预处理
4.2 选择语句
if(x>=0&&x<=2)
switch(x)
cout<<’X ’;
{case0:
else if(x>=20&&x<=22)
case1: case2:cout<<’X ’;break;
4.2 选择语句
3、几点说明: (1)整型表达式如果不是整型,则它的值将
自动转换为整型。 (2)整型常量表达式通常就是一个整型常量。 如果不是,将自动转换为整型。 (3)case的作用只是标明一个入口以及转入该 入口的条件。一旦从某个入口进入一个语 句序列,就从该语句序列开始顺序执行, 直到以下所有语句序列执行完毕时为止。
对循环参数调整,然后转向步骤(2); 如果循环条件为假,则结束循环。
第四章 语句和预处理
4.3 循环结构
4、流程图: 循环初始化
循环条件?
例:for(int i=0;i<20;i+=5) cout<<i<<’ ’; 执行结果为:
N 0 5 10 15
Y 循环体
循环参数调整
第四章 语句和预处理
4.3 循环结构
第四章 语句和预处理
4.3 循环结构
例 显示输出99乘法表。 #include<iomanip.h> void main( ) {
cout<<endl<<setw(3)<<”| ”; int i; for(i=1;i<10;i++) cout<<setw(3)<<i; cout<<endl<< ” --+-------------------------- ”; for(i=1;i<10;i++){cout<<endl<<setw(2)<<i<< ”| ”;

05 循环控制

05 循环控制
2
Example: for (num = 1; num <= 3; num++ ) printf(“%d\t”, num);
num
printf(“have come to exit\n”);
for语句
for (表达式1;表达式2;表达式3) 循环体;

算表 达 式 1 假
等价形式:
表达式1; while (表达式2) { 循环体; 表达式3; }
表 达 式 2 真 循环 体 计 算表 达 式 3
for是关键词,其后有 3个表达式,各个表达式 用“;”分隔。 3 个表达式可以是任意的表达 式,通常主要用于for循环控制。 for循环执行过程如下: 1) 计算表达式1。 2) 计算表达式2,若其值为非0(循环条件成 立),则转3)执行循环体;若其值为0(循环 条件不成立),则转5)结束循环。 3) 执行循环体。 4) 计算表达式3,然后转2)判断循环条件是 否成立。 5) 结束循环,执行for循环之后的语句。
5.4 do-while语句
do-while语句的一般形式是: do { 语句序列; } while(表达式) ;
表达式称为“循环条件”,语句称为“循环体”。 直到型循环。
执行过程是:
1) 执行do后面循环体语句。 2) 计算while后面的表达式的值,如果其值为“真” 则继续执行循环体,如果表达式的值为假,退出此 循环结构。
(3)避免死循环要求同while循环。
例 5.5 利 用 do--while 语 句 , 编 写 程 序 计 算 1+2+3+…+100。
main() { int i,sum=0; i=1; do { sum=sum+i; i++; } while(i<=100); printf("sum=%d\n",sum); }

程序的流程控制

程序的流程控制
case 9后的语句为空,从case 9进入后,直接往下执行 case 10后的语句序列,遇见break语句时跳出switch分支。 因此,值为9和10时均显示“优”。
循环结构
for 语句
for(循环初始化;循环条件;循环参数调整)循环体
for 循环结构示意
循环初始化 循环参数调整
循环条件 true 循环体
if(i>=j)
cout<<i<<endl;
条out<<j<<endl;
}
9、要学生做的事,教职员躬亲共做; 要学生 学的知 识,教 职员躬 亲共学 ;要学 生守的 规则, 教职员 躬亲共 守。21 .7.1221 .7.12M onday , July 12, 2021 10、阅读一切好书如同和过去最杰出 的人谈 话。14:08:1414 :08:141 4:087/1 2/2021 2:08:14 PM 11、一个好的教师,是一个懂得心理 学和教 育学的 人。21. 7.1214:08:1414 :08Jul- 2112-Ju l-21 12、要记住,你不仅是教课的教师, 也是学 生的教 育者, 生活的 导师和 道德的 引路人 。14:08:1414:0 8:1414:08Mon day , July 12, 2021 13、He who seize the right moment, is the right man.谁把握机遇,谁就心想事成。21.7.1221.7.1 214:08:1414:08 :14July 12, 2021 14、谁要是自己还没有发展培养和教 育好, 他就不 能发展 培养和 教育别 人。202 1年7月 12日星 期一下 午2时8 分14秒 14:08:1 421.7.1 2 15、一年之计,莫如树谷;十年之计 ,莫如 树木; 终身之 计,莫 如树人 。2021 年7月下 午2时8 分21.7. 1214:0 8July 12, 2021 16、提出一个问题往往比解决一个更 重要。 因为解 决问题 也许仅 是一个 数学上 或实验 上的技 能而已 ,而提 出新的 问题, 却需要 有创造 性的想 像力, 而且标 志着科 学的真 正进步 。2021 年7月12 日星期 一2时8 分14秒 14:08:1 412 17、儿童是中心,教育的措施便围绕 他们而 组织起 来。下 午2时8 分14秒 下午2时 8分14:08:1421 .7.12
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ch5 循环程序结构
能力目标:
正确认识循环程序的执行特点 运用3种循环语句(while语句、do while语句、for语句)进行循环程序设计 运用2个循环辅助语句(break语句、 continue语句),更好地控制程序流程
1hile语句
1.初识while语句 (1)思考:在程序设计中,通常会遇到输出一个星号 ‘*’,可以用一个printf()语句,那么输出5个星号‘*’、 10个星号‘*’,甚至更多的星号‘*’,该如何处理呢? (2)观察下面两个程序,完成问题。
语句一: while(n++<=5) printf(“%d”,n);
①两条语句的关键字是什么?
while ②关键字后的括号内是什么表达式? 关系表达式、逻辑表达式
语句二: while(i>0&&i<5) { scanf(“%d”,&x); i = i + 1; ③关键字后的语句部分可以是哪些语句? } 简单语句、复合语句
goto语句的使用范围只局限于一 个函数内部 语法: goto 标号; 控制从多重循环内部退出
用法
构成循环
23
【例】输入一串字符,以 ‘\n’为结束标志 #include "stdio.h" void main() { char c; printf("input a $:"); do{ scanf("%c",&c); if(c=='\n') goto end; }while(1); end: printf("end!\n"); }
2
①上面两个程序分别实现什么功能? 答:它们都实现输出5个星号 ‘*’。 ②两个程序中,哪一个简便?在程序中能否 用循环语句来实现对重复操作的控制? 答:程序二简便,在程序中能用循环语句 来实现对重复操作的控制。
微电子系 老杨 设计制作
3
2.学习while语句的形式
(1)请观察下面while语句的形式,完成问题。
n
正确地写出一个 while循环结构,对循环控制变量做3个工作 :一 是给控制变量赋初值;二是写出正确的循环条件;三是控制变量的 更新。
微电子系 老杨 设计制作
9
5.2 do–while语句
语法: do { 程序段;
其中必须含有 改变条件表达 式值的语句
}while (条件表达式);
10
【例】使用do–while循环求两个 正整数的最小公倍数。
#include"stdio.h" main() { int I; char ch; ch='# '; I=1; while(I<3) { printf( "%c \n",ch); I++; } }
①流程图:
②循环条件是 循环体是
I=1
I<3 printf(“%c\n”,ch); I I<3
循环控制变量是 是 、
15
4.表达式1和表达式3可以通过“;” 包含一个以上的简单表达式,如: for(sum=0,i=1;i<=100;i++,j--) k=i+j; 5.表达式2一般是: 关系表达式 (i<=100) 逻辑表达式 (a<b && x<y) 数值表达式 字符表达式
16
5.4 多重循环
多重循环(循环嵌套),for、while、 do…while等循环可以相互嵌套使用
13
#include “stdio.h” 输出结 果? main() { int i; for (i=0;i<8;i++) printf ( “%d,”,++i); printf ( “%d,”,i++); } 1,3,5,7,8,
14
for 语句注意事项
1.表达式1可以省略 如 for( ;i<=10;i++) s=s+i; 2.表达式2一般不能省略,否则 无法使循环停止 3.表达式3也可以省略,但对于 for(i=1;i<=100;i++) 如果i++省略,则循环体内一 定有i++,否则循环无法结束
for(表达式1;表达式2;表达式3) { …… while(表达式) 嵌套方式 { …… 有很多 } }
17
#include <stdio.h> main( ) { int i=1,j,k; while(i>=0) { printf(”i=%d\n",i); for(j=1;j<=i;j++) { k=i+j; printf(”k=%d\n",k); } i++; } }
程序一 main() { printf(“*\n”); printf(“*\n”); printf(“*\n”); printf(“*\n”); printf(“*\n”); }
程序二 main() { int i=1; while(i++<=5) printf(“*\n”); }
微电子系 老杨 设计制作
21
#include "stdio.h" void main() { char c; int num=0; while((c=getchar())!='\n') { if(c<97||c>122) continue; num++; } printf("%d\n",num); }
22
5.7 goto 语句
24
5.8 结构化程序设计及应用举例
【例】编程求三个数字x、y、z (0~9) 满足: xyz+zyx=1231 #include "stdio.h" main( ) { int i,j,k; xyz=100*x+10*y+z for(i=1;i<=9;i++) { for(j=0;j<=9;j++) { for(k=0;k<=9;k++) { if(101*i+20*j+101*k==1231) break; } } } printf("x=%d,y=%d,z=%d\n",i,j,k); 25 }
嵌套循环 过程也要 避免死循 环,这个 程序将输 出什么?
18
5.6 循环和开关(switch)分支 的中途退出
(1)break: 退出当前循环或当前switch结构 继续执行逻辑上的下一条语句
(2)continue: 用于结束本次循环 ,接着进行是否 执行下一次循环的判断
19
main() /* y=a*x^2+b*x+c */ { 结束的是 int a,b,c,x,y; 整个循环 a=5;b=10;c=15; for(x=1;x<=10;x++) { y=a*x*x+b*x+c; if (y>250&&y<350) break; printf("break---x=%d, y=%d\n",x,y); } for(x=1;x<=10;x++) 结束本次循环, { 进入下一个循环 y=a*x*x+b*x+c; if (y>250&&y<350) continue; printf("continue--x=%d, y=%d\n",x,y); } }
#include "stdio.h" void main() { int m,n,result; scanf("%d%d",&m,&n); result=m>n?m:n; result--; do { result++; }while(result%m!=0||result%n!=0); printf("result=%d\n",result); }
20
#include "stdio.h" void main() { int i,a=1,b=2,c=3,result; for (i=1;i<10;i++) { result=a*i*i+b*i+c; printf("result=%d",result); if(result>20) break; } }
(2)试写出while语句的一般形式。 while(表达式) 语句
微电子系 老杨 设计制作
4
3.学习while语句的执行过程
(1)请观察while语句的流程,描述一下while语句的执 行过程?

表 达 式 真
语句
微电子系 老杨 设计制作
5
(2)请分析该程序的执行过程,画出以下程序的流程图,并指出 循环条件、循环体及循环控制变量分别是什么,同时指出对循环变 量所做的三个工作。
11
5.3 for语句
语法:
非0时执 行循环体 for(语句S1;条件表达式C;语句S2) { 程序段; 循环 每次执行 } 前先 完循环体 求解 后求解
12
【例】用for循环求12+22+32+42+…1002
#include "stdio.h" 用int,会出现 void main( ) 什么问题? { int k; long result=0; for(k=1;k<=100;k++) result+=k*k; printf("result=%ld\n",result); }
相关文档
最新文档