《周程序控制结构循环结构.ppt》由会员分享,可在线阅读,更多相关《周程序控制结构循环结构.ppt(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、关于周程序控制结构循环结构现在学习的是第1页,共54页2现在学习的是第2页,共54页3现在学习的是第3页,共54页4循环结构循环结构n在很多实际问题中会遇到有规律性的重复运在很多实际问题中会遇到有规律性的重复运算,因此在程序中就需要将某些语句重复执算,因此在程序中就需要将某些语句重复执行。行。一组被重复执行的语句称为一组被重复执行的语句称为循环体循环体;每重复一次,都必须作出是继续还是停止循环的决定,这每重复一次,都必须作出是继续还是停止循环的决定,这个决定所依据的条件称为个决定所依据的条件称为循环条件循环条件;n循环循环:在给定条件成立时,反复执行某程序:在给定条件成立时,反复执行某程序段,
2、直到条件不成立为止。段,直到条件不成立为止。 现在学习的是第4页,共54页5循环条件循环条件 循环体循环体现在学习的是第5页,共54页6循环结构需要解决的两个问题循环结构需要解决的两个问题2. 2. 控制循环结构的控制循环结构的结构描述结构描述条件表示描述方法条件表示描述方法逻辑表达式逻辑表达式关系表达式关系表达式1. 1. 控制循环结构执行的控制循环结构执行的条件表示条件表示 while 语句语句do-while语句语句实现循环结构的语句实现循环结构的语句可使用可使用c c中的任中的任意表达式意表达式 for语句语句现在学习的是第6页,共54页7现在学习的是第7页,共54页8现在学习的是第8
3、页,共54页9特点:先判断,后执特点:先判断,后执行;若条件不成立,行;若条件不成立,则有可能一次也不执则有可能一次也不执行。行。现在学习的是第9页,共54页10sum= sum+i;i = i+1;现在学习的是第10页,共54页11现在学习的是第11页,共54页12现在学习的是第12页,共54页13现在学习的是第13页,共54页14现在学习的是第14页,共54页15特点:先执行,后判特点:先执行,后判断;循环至少执行一断;循环至少执行一次语句。次语句。现在学习的是第15页,共54页16 do i+; sum+=i; while(i 10000); int i=1 , sum=0;while(
4、 i = 10000 ) sum += i; i+; 现在学习的是第16页,共54页17分析分析本题还是一个累加求和的问本题还是一个累加求和的问题,当累加和题,当累加和sumsum 500500时反时反复执行循环,否则结束循环复执行循环,否则结束循环步骤步骤定义变量:定义变量: sumsum,n n;sum sum 和和 n n 分别赋初值;分别赋初值; n=0n=0;sum=0sum=0;当当 sum sum 500 500 时反复执行循环,时反复执行循环, 否则结束循环。否则结束循环。语句为语句为:While(sum500)While(sum=n)n (m=n);设设 r r 表示表示 m
5、 m 除以除以 n n 的余数;的余数;即:即:r = m % n;r = m % n;如果,如果,r=0 r=0 则则 n n 中的值为中的值为m m 和和 n n的最大公约数;否则执行:的最大公约数;否则执行:m = n ;m = n ; n = r ; n = r ; 转回转回“如果如果”处,继续执行。处,继续执行。 最小公倍数最小公倍数m m 和和 n n 的乘积的乘积 除以最大公约数除以最大公约数现在学习的是第19页,共54页20 现在学习的是第20页,共54页21分析分析读入第一个字符;读入第一个字符;当其不是当其不是“! !”时,进入循环;时,进入循环;判断其是否为字母,如果是则
6、判断其是否为字母,如果是则 将其翻译成该字母的后继;将其翻译成该字母的后继;如果读入的字符不是字母,原如果读入的字符不是字母,原 样输出;样输出;再读入下一个字符,返回再读入下一个字符,返回2 2步;步;当输入字符为当输入字符为“! !”时结束。时结束。现在学习的是第21页,共54页22#includevoid main() char ch; scanf (%c, &ch); while (ch!= !) if (ch=a & ch=A & ch=Z) if(ch = z) ch=a; else if(ch = Z) ch=A; else ch=ch+1; printf (%c, ch); s
7、canf (%c, &ch); printf (字符串结束字符串结束n); 现在学习的是第22页,共54页23思考:思考:现在学习的是第23页,共54页24现在学习的是第24页,共54页25求解方法:求解方法:现在学习的是第25页,共54页26求解方法:求解方法:现在学习的是第26页,共54页27求解方法:求解方法:现在学习的是第27页,共54页28现在学习的是第28页,共54页29表达式表达式1 1:一般为赋值表达式,给控制变量赋初值;:一般为赋值表达式,给控制变量赋初值;表达式表达式2 2:关系表达式或逻辑表达式,循环控制条件;:关系表达式或逻辑表达式,循环控制条件;表达式表达式3 3:一
8、般为赋值表达式,给控制变量增量:一般为赋值表达式,给控制变量增量/ /减量;减量;语句语句:循环体,当有多条语句时,必须使用复合语句:循环体,当有多条语句时,必须使用复合语句。现在学习的是第29页,共54页300真真(非非0)表达式表达式2=?语句;语句;循环体外语句循环体外语句表达式表达式1;表达式表达式3;现在学习的是第30页,共54页31现在学习的是第31页,共54页32表达式表达式1表达式表达式2循环体语句循环体语句表达式表达式3假假真真当表达式当表达式 2 成立时成立时,执行循环体,执行循环体当表达式当表达式 2 不成立不成立时,退出循环时,退出循环对循环变量赋初值对循环变量赋初值修
9、改循环变量的值修改循环变量的值返回循返回循环头部环头部现在学习的是第32页,共54页33现在学习的是第33页,共54页34现在学习的是第34页,共54页35int i=1 , sum=0;while( i = 10 ) sum += i; i+; int i= 0, sum=0; do i+; sum+=i; while(i10);现在学习的是第35页,共54页36forfor语句的三个表达式都是可以省略的,语句的三个表达式都是可以省略的,但分号但分号“;”;”绝对绝对不能省略不能省略。forfor语句有以下几种格式:语句有以下几种格式:(1 1)for(; ;)for(; ;)语句语句; ;
10、(2 2)for(;for(;表达式表达式2;2;表达式表达式3 )3 )语句;语句;(3 3)forfor(表达式(表达式1;1;表达式表达式2;)2;)语句;语句;(4 4)for(i=1,j = n;i j;i +,j - - )for(i=1,j = n;i j;i +,j - - )语句语句; ;注意:注意:现在学习的是第36页,共54页37for( ; ; )for( ; ; ) 该语句是一个死循环,一般用条件表达式加该语句是一个死循环,一般用条件表达式加breakbreak语句在循环体内适当位置,一旦条件满足时,用语句在循环体内适当位置,一旦条件满足时,用breakbreak语句
11、跳出语句跳出forfor循环。循环。for(for(;表达式;表达式2 2;表达式;表达式3)3) 使用条件是:循环控制变量的初值不是已知常量,而使用条件是:循环控制变量的初值不是已知常量,而是在前面通过计算得到。是在前面通过计算得到。 例如:例如: i=m-n;i=m-n; for(for(;ikik;i+)i+)语句;语句;现在学习的是第37页,共54页38forfor(表达式(表达式1 1;表达式;表达式2 2;) )语句语句 一般当循环控制变量非规则变化,而且循环体中有更新一般当循环控制变量非规则变化,而且循环体中有更新控制变量的语句时使用。控制变量的语句时使用。 例如:例如: for
12、(i=1for(i=1;i=100i=100;) ) i=ii=i* *2+1;2+1; for(i=1for(i=1,j=nj=n;ijij;i+i+,j - - j - - ) )语句;语句; 在在forfor语句中,表达式语句中,表达式1 1、表达式、表达式3 3都可以有一项或都可以有一项或多项,如本例中,表达式多项,如本例中,表达式1 1同时为同时为i i和和j j赋初值,表达式赋初值,表达式3 3同同时改变时改变i i和和j j的值。当有不止一项时,各项之间用逗号的值。当有不止一项时,各项之间用逗号“,”分隔。分隔。 现在学习的是第38页,共54页39现在学习的是第39页,共54页4
13、0for()for() while()while() DoDo f o r ( )f o r ( ) while()while()while()while() for() for() for()for() for()for() 以下四种均为合法的嵌套循环结构以下四种均为合法的嵌套循环结构现在学习的是第40页,共54页41三种循环语句三种循环语句forfor、whilewhile、do-whiledo-while可以互相嵌套自由组合可以互相嵌套自由组合。但要注意的是,各循环必须完整,相互之间绝不允许交但要注意的是,各循环必须完整,相互之间绝不允许交叉。如下面这种形式是不允许的:叉。如下面这种形式
14、是不允许的: do . for(;) . while(); 注意:注意:现在学习的是第41页,共54页42现在学习的是第42页,共54页43现在学习的是第43页,共54页44现在学习的是第44页,共54页45现在学习的是第45页,共54页46循环结构小结循环结构小结 同一个问题,往往既可以用同一个问题,往往既可以用 while语句解决,也可以语句解决,也可以用用 do-while或者或者for语句来解决,但在实际应用中,应根据语句来解决,但在实际应用中,应根据具体情况来选用不同的循环语句。选用的一般原则是:具体情况来选用不同的循环语句。选用的一般原则是:n 如果循环次数在执行循环体之前就已确定
15、,一般用如果循环次数在执行循环体之前就已确定,一般用 for语句语句。如果循环次数是由循环体的执行情况确定的,一般用。如果循环次数是由循环体的执行情况确定的,一般用 while语句或者语句或者do-while语句;语句; 当循环体至少执行一次时,用当循环体至少执行一次时,用 do-while语句,反之,如语句,反之,如果循环体可能一次也不执行,则选用果循环体可能一次也不执行,则选用while语句。语句。现在学习的是第46页,共54页47现在学习的是第47页,共54页48例例7.7.一球从一球从100100米高度自由落下,每次落地米高度自由落下,每次落地 后反弹回原高度的一半,再落下。求它在后反
16、弹回原高度的一半,再落下。求它在第第1010次落地时共经过多少米?第次落地时共经过多少米?第1010次反弹多次反弹多高?高? float h=100.0, sum=0.0; int n; for( n=1; ; n+) sum += h; h = h/2; /落地后反弹跳回原高度的一半落地后反弹跳回原高度的一半 if( n=10 ) break; /终止执行本循环终止执行本循环 sum += h; printf(“共经过共经过%f米,第米,第10次反弹次反弹%f米米n,sum,h);现在学习的是第48页,共54页49现在学习的是第49页,共54页50continuecontinue语句:语句:
17、ncontinue continue 语句的作用语句的作用是结束是结束本次循环本次循环,直,直接进行下一轮循环的接进行下一轮循环的判断。判断。 循环中循环中continuecontinue语句执行流程语句执行流程假假表达式表达式2表达式表达式1语句序列语句序列语句序列语句序列真真真真continue假假n该语句只能用在该语句只能用在forfor、whilewhile、do-whiledo-while语语句中,常与句中,常与ifif语句配语句配合,起到加速循环合,起到加速循环的作用。的作用。 现在学习的是第50页,共54页51例例8.8.打印出打印出100-200100-200之间所有能被之间所有能被 7 7 整除的整数整除的整数#includevoid main() int n; for( n=100; n=200; n+) if(n%7!=0) continue; /结束本次循环结束本次循环 printf(%5d , n); printf(n); 现在学习的是第51页,共54页52现在学习的是第52页,共54页53练习练习次教案思考题次教案思考题现在学习的是第53页,共54页2022-9-2感谢大家观看感谢大家观看现在学习的是第54页,共54页
限制150内