第6章循环控制语句课件

上传人:沈*** 文档编号:241660754 上传时间:2024-07-14 格式:PPT 页数:82 大小:2.36MB
返回 下载 相关 举报
第6章循环控制语句课件_第1页
第1页 / 共82页
第6章循环控制语句课件_第2页
第2页 / 共82页
第6章循环控制语句课件_第3页
第3页 / 共82页
点击查看更多>>
资源描述
第六章第六章 循环控制语句循环控制语句青岛理工大学琴岛学院青岛理工大学琴岛学院三个任意数的三个任意数的平方如何求?平方如何求?求任意一个整型数据的平方?求任意一个整型数据的平方?仔细观察右侧程序?仔细观察右侧程序?循环结构:循环结构:根据条件是否成立根据条件是否成立决定是否重复执行某个程序段决定是否重复执行某个程序段5 主要内容:主要内容:6.16.1 whilewhile语句语句6.26.2 do-whiledo-while语句语句6.36.3 forfor语句语句6.4 6.4 循环嵌套循环嵌套6.5 6.5 循环控制语句循环控制语句2024/7/14本章要点:本章要点:掌握掌握while、dowhile、for的格式与执行过程的格式与执行过程理解术语:循环条件、循环结束条件、循环体理解术语:循环条件、循环结束条件、循环体能够利用三种语句编写简单的循环结构程序能够利用三种语句编写简单的循环结构程序能能够够读读懂懂for循循环环嵌嵌套套和和break、continue语语句句构构成成的的程程序序并能得出正确的结果并能得出正确的结果重点:三种语句的格式和执行过程重点:三种语句的格式和执行过程难点:循环嵌套的执行过程、难点:循环嵌套的执行过程、break、continue用法用法2024/7/1476.1 while6.1 while语句语句 while while(表达式表达式)循环体语句循环体语句 l一般为一般为关系关系表达式表达式或或逻辑逻辑表达式,也表达式,也可以是可以是C C语言其他类语言其他类型的合法表达式型的合法表达式 l用来控制循环体是用来控制循环体是否执行否执行l与与if(if(表达式表达式)区别区别l称为称为内嵌语句内嵌语句,可以,可以是基本语句、控制语是基本语句、控制语句,也可以是复合语句,也可以是复合语句句l是循环重复执行的部是循环重复执行的部分分 l注意注意的有无的有无1 1、格式、格式2024/7/148功能:功能:计计算算表表达达式式的的值值,为为非非0 0(逻逻辑辑真真)时时,重重复复执执行行内内嵌嵌语语句句,然然后后重重新新计计算算表表达达式式的的值值,直直到到表表达达式式的的值值为为0 0 时时结束循环,转去执行结束循环,转去执行whilewhile结构后面的语句。结构后面的语句。当 表 达 式 为 真 语句 N-SN-S结构图结构图N NY Y流程图流程图表达式非0?语句循环控制条件循环控制条件循环体循环体6.1 while6.1 while语句语句 2 2、执行过程、执行过程2024/7/149【例【例6.16.1】编写程序,求编写程序,求1-1001-100这这100100个自然数的和个自然数的和即:即:s=1+2+3+s=1+2+3+100+100 思路:寻找思路:寻找加数加数与与求和求和的规律的规律 6.1 while6.1 while语句语句 2024/7/1410算法和程序:算法和程序:程序输出结果:程序输出结果:s=5050i i i i:循环控制变量循环控制变量循环控制变量循环控制变量s s s s:累加器累加器累加器累加器 i=1,s=0 当i=100 s=s+i i+输出s6.1 while6.1 while语句语句 循环结构中的术语:循环结构中的术语:循环条件与循环结束条件循环条件与循环结束条件循环变量以及循环变量初值循环变量以及循环变量初值循环体循环体避免死循环(循环体中有趋向于循环结束的语句)避免死循环(循环体中有趋向于循环结束的语句)2024/7/1412说明:说明:whilewhilewhilewhile要小写,一对小括号不能省略要小写,一对小括号不能省略要小写,一对小括号不能省略要小写,一对小括号不能省略如如如如果果果果whilewhilewhilewhile的的的的 (表表表表达达达达式式式式)值值值值为为为为0 0 0 0,则则则则循循循循环环环环体体体体一一一一次次次次也也也也不不不不执执执执行行行行 (例例例例如如如如当当当当i i的的初初值值=101=101)。循环的控制范围用循环的控制范围用循环的控制范围用循环的控制范围用限制限制限制限制在在在在循循循循环环环环体体体体中中中中必必必必须须须须有有有有使使使使循循循循环环环环趋趋趋趋向向向向结结结结束束束束的的的的操操操操作作作作,否否否否则则则则循循循循环环环环将将将将无无无无限限限限进进进进行行行行(死死循环循环)。)。)。)。在循环体中,语句的先后位置必须符合逻辑,否则会影响运算结果。在循环体中,语句的先后位置必须符合逻辑,否则会影响运算结果。在循环体中,语句的先后位置必须符合逻辑,否则会影响运算结果。在循环体中,语句的先后位置必须符合逻辑,否则会影响运算结果。思考程序段的输出?思考程序段的输出?while(i=100)i+;s=s+i;运行后,输出:运行后,输出:s=5150原因是什么?原因是什么?6.1 while6.1 while语句语句 2024/7/148main()int number=0;while(number+=1)printf(“*%dn”,number);printf(“*%dn”,number);例:循环进行了多少次例:循环进行了多少次?输出的值输出的值?结果结果:*1 *2 *3条件表达式条件表达式执行次数执行次数123条件表达式条件表达式中变量的值中变量的值012执行哪个执行哪个printf语句语句(1)(1)(2)(1)(2)输出输出number的值的值1236.1 while6.1 while语句语句 2024/7/1414【例例 6.26.2】显示显示110110的平方的平方#include main()int i=1;while(iN,则求则求M%N,若余数若余数r为为0,则,则N即为是所求,若余数即为是所求,若余数r不为不为0,用,用N除除 r,再求再求其余数其余数直到余数为直到余数为0,则除数就是最大公约数。,则除数就是最大公约数。如:如:m=15;n=12;r=m%n,即,即r=3,其值!,其值!=0,继续用,继续用(n=12)%(r=3),其值为,其值为0,此时的此时的3即为所求即为所求2024/7/1476与与64的最的最大公约数为大公约数为46.2 do-while6.2 do-while语句语句定义m、n、rmnT F m和n交换r=m%nm=nn=r 当r!=0时输出最大公约数m算法描述:求求76 与与 64的最大公约数的最大公约数r=76%64,r 的值为的值为12 r不为不为0r=64%12,r 的值为的值为4 r不为不为0r=12%4,r 的值为的值为 0242024/7/14main()int m,n,t,r;scanf(“%d,%d”,&m,&n);if(mn)t=m;m=n;n=t;do r=m%n;m=n;n=r;while(r);或或r!=0 printf(“%dn”,m);输入输入64,76交换交换m,n条件是:余数不为条件是:余数不为0除数做被除数,余数做除数除数做被除数,余数做除数程序代码:程序代码:6.2 do-while6.2 do-while语句语句252024/7/1426相同点:相同点:相同点:相同点:while和和do-while都能实现都能实现循环控制循环控制,while结构程结构程序通常都序通常都可以转换可以转换成成do-while结构结构区别:区别:区别:区别:do-while 语句语句先执行循环体再判断条件,循环体先执行循环体再判断条件,循环体至至少执行一次少执行一次;while 语句语句先判断条件再执行循环体,循环体有可能先判断条件再执行循环体,循环体有可能 一次也不执行一次也不执行 dowhile循环体中一定要有能使表达式值趋于循环体中一定要有能使表达式值趋于0的操的操 作作(如如i+),否则会出现否则会出现死循环死循环。6.2 do-while6.2 do-while语句语句3 3、whilewhile语句与语句与do-whiledo-while语句的比较语句的比较2024/7/14 main()int s=0,x;scanf(%d,&x);while(x=10)s=s+x;x+;printf(s=%dn,s);main()int s=0,x;scanf(%d,&x);do s=s+x;x+;while(x=10);printf(s=%dn,s);输入输入:12输出:输出:s=12循环至少循环至少执行一次执行一次循环没有循环没有被执行被执行输入:输入:12输出:输出:s=06.2 do-while6.2 do-while语句语句276.2 do while语句语句总结do、while都必须小写while后面的小括号()、分号;都不能省略循环条件可以是c语言中任意类型的表达式do while是先执行循环体,然后再判断循环条件do和while之间的部分是循环体,用括起来,如果循环体语句只有一条,则可以省略不写do while至少执行一次循环体避免“死循环”出现和while一样,比较适合只知道循环条件、不知道循环次数循环 主要内容:主要内容:6.16.1 whilewhile语句语句6.26.2 do-whiledo-while语句语句6.36.3 forfor语句语句6.4 6.4 循环嵌套循环嵌套6.5 6.5 循环控制语句循环控制语句求求1-100的自然数求和:的自然数求和:main()int n,s=0;for(n=1;n=100;n+)s=s+n;printf(“%dn”,s);main()int n,s=0;n=1;while(n=100)s=s+n;n+;printf(“%dn”,s);main()int n,s=0;n=1;do s=s+n;n+;while(n=100)printf(“%dn”,s);2024/7/1431l l功能:计算表达式计算表达式计算表达式计算表达式1 1的值,再的值,再的值,再的值,再判断表达式判断表达式判断表达式判断表达式2 2,如果其值为非,如果其值为非,如果其值为非,如果其值为非0 0(逻辑真),则执行内嵌语句(逻辑真),则执行内嵌语句(逻辑真),则执行内嵌语句(逻辑真),则执行内嵌语句(循环体循环体循环体循环体),并,并,并,并计算表计算表计算表计算表达式达式达式达式3 3;之后再去判断表达式;之后再去判断表达式;之后再去判断表达式;之后再去判断表达式2 2,一直到其值为,一直到其值为,一直到其值为,一直到其值为0 0时结时结时结时结束循环,执行后续语句。束循环,执行后续语句。束循环,执行后续语句。束循环,执行后续语句。6.3 for6.3 for语句语句1 1、格式、格式初值表达式初值表达式1 条件表达式条件表达式2 增量表达式增量表达式3for(表达式表达式1;表达式表达式2;表达式表达式3)循环体语句循环体语句 32N-S结构图for(表达式1;表达式2;表达式3)语句NY流程图计算exp1 循环体语句计算exp3exp2为真?例如:main()int i,s;s=0;for(i=1;i=100;i+)s=s+i;printf(s=%dn,s);可部分或全部省略,可部分或全部省略,但但“;”不可省略不可省略6.3 for6.3 for语句语句2 2、执行过程、执行过程20变量值发生变化变量值发生变化计算计算表达式表达式1 1初值初值;计算计算表达式表达式2 2并判断并判断,0 0 时跳出循环,非时跳出循环,非0 0 时执行循环;时执行循环;当当表达式表达式2 2非非0 0,执行循环体语句执行循环体语句,计算,计算表达式表达式3 3增量增量;自动转到第二步自动转到第二步(计算计算表达式表达式2 2).继续执行。继续执行。main()int n,s=0;for(n=1;n=100;n+)s=s+n;printf(“%dn”,s);变量的增量变量的增量循环体循环体变量的初值变量的初值循环条件循环条件 变量初始化变量初始化 关系或逻辑表达式关系或逻辑表达式6.3 for6.3 for语句语句2 2、执行过程、执行过程2024/7/142024/7/14(1 1)表达式)表达式1,1,表达式表达式2 2和表达式和表达式3 3均可均可缺省缺省for(;n100;n+)缺省缺省e1,n 应在应在循环之前循环之前赋初值赋初值 for(n=0;n+)缺省缺省e2,造成死循环,不可使用!造成死循环,不可使用!for(n=0;n100;)缺省缺省e3,n增量应在增量应在循环体内进行循环体内进行for(;)缺省缺省e1,e2,e3 死循环死循环for(;n100;)缺省缺省e1,e3分号始终不能缺省!分号始终不能缺省!不可用不可用 相当于相当于for(;1;)说明说明:6.3 for6.3 for语句语句342024/7/14(1)for(初值初值;判断判断;增量增量)语句;语句;(2)for(初值初值;判断判断;增量增量)复合语句复合语句;(3)for(初值初值;判断判断;增量增量);(2 2)表达式表达式1 1和和表达式表达式3 3可以是与可以是与初值、增量初值、增量无关的逗号表达式无关的逗号表达式for(s=0,n=1;n=100;s=s+n,printf(“%d”,s)n+;for(s=0;n100;s=s+n,n+)printf(“%d”,s);求累加和求累加和n的初值在的初值在for之前完成之前完成增量在增量在for之外完成之外完成(3 3)forfor语句的语句的3 3种形式:种形式:6.3 for6.3 for语句语句352024/7/14main()int n,s;for(n=1;n=10;n+=2)printf(n=%dn,n);main()int n,s;for(n=1;n=10;n+=2);printf(n=%dn,n);以下程序的输出结果区别以下程序的输出结果区别:输出结果:输出结果:n=11输出结果:输出结果:n=1n=3n=5n=7n=9无循环体无循环体 循环体循环体;特点:先判断后循环特点:先判断后循环printf(n=%dn,n);6.3 for6.3 for语句语句362024/7/1437例:#include main()int i;for(i=0;i10;i+)putchar(a+i);运行结果:abcdefghij例:#include main()int i=0;for(;i10;)putchar(a+(i+);例:#include main()int i=0;for(;i10;i+)putchar(a+i);例:#include main()int i=0;for(;i10;putchar(a+i),i+);6.3 for6.3 for语句语句2024/7/1438【例【例6.6】求求n!,即计算即计算p=123n的值。的值。思路:求阶乘与求累加的运算处理过程类似,只要将“+”变为“*”,注意p的初值是1而不是0。设置:乘数乘数i,初值为1,终值为n(n是循环控制终值,需要从键盘输入)累乘器累乘器 p,每次循环令p=p*i6.3 for6.3 for语句语句求阶乘的分析过程:求阶乘的分析过程:p=12345(即即5!)2024/7/1440程序:程序:main()int i,n;long p;p=1;printf(Enter n:);scanf(%d,&n);for(i=1;i=n;i+)p=p*i;printf(p=%ld n,p);思考:思考:如何输出如何输出1!,2!,1!,2!,n!n!?如何求如何求s=1!+2!+n!s=1!+2!+n!?如何求如何求s=2!+3!+.+n!?s=2!+3!+.+n!?6.3 for6.3 for语句语句6.3 for语句语句总结总结for语句比较适合循环次数确定、或循环条件在一个范围内的情况语句比较适合循环次数确定、或循环条件在一个范围内的情况for要小写要小写格式中三个表达式之间是分号;,不是逗号,且不能省略格式中三个表达式之间是分号;,不是逗号,且不能省略三个表达式都可以省略不写三个表达式都可以省略不写注注意意循循环环体体用用括括起起来来,如如果果是是一一条条语语句句,则则可可以以省省略略不不写写。这这个个一一条条语句可以是表达式语句,可以是控制语句,可以是复合语句语句可以是表达式语句,可以是控制语句,可以是复合语句注意不能乱用分号,会改变控制范围注意不能乱用分号,会改变控制范围 如:如:int n=0,i;for(i=1;i=3;i+);n+;printf(%d,n);主要内容:主要内容:6.16.1 whilewhile语句语句6.26.2 do-whiledo-while语句语句6.36.3 forfor语句应用语句应用6.4 6.4 循环嵌套循环嵌套6.5 6.5 循环控制语句循环控制语句6.3 for6.3 for语句应用语句应用【例例6.76.7】从键盘上输入从键盘上输入一个整数一个整数a a,判定其是否,判定其是否为素数,如果是素数,则输出为素数,如果是素数,则输出“yesyes”,都在输出,都在输出“nono”。6.3 for6.3 for语句应用语句应用【例例6.76.7】从键盘上输入从键盘上输入一个整数一个整数a a,判定其是否,判定其是否为素数,如果是素数,则输出为素数,如果是素数,则输出“yesyes”,都在输出,都在输出“nono”。6.3 for6.3 for语句应用语句应用【例例6.76.7】从键盘上输入从键盘上输入一个整数一个整数a a,判定其是否,判定其是否为素数,如果是素数,则输出为素数,如果是素数,则输出“yesyes”,都在输出,都在输出“nono”。循环条件:循环条件:r!=0循环变量的初值是:循环变量的初值是:r=n%i;循环体是:循环体是:i+;r=n%i;2024/7/1446#include int main()int a,i=2,r;scanf(%d,&a);for(r=a%i;r&i=a)printf(%d is yes!n,a);else printf(%d is no!n,a);return 0;运行结果:运行结果:1717 is yes!6.3 for6.3 for语句应用语句应用2024/7/1447【例【例6.86.8】按每行输出按每行输出5 5个数的形式输出个数的形式输出FibonacciFibonacci数列的前数列的前2020项项 。思路:Fibonacci数列的前几项是:1、1、2、3、5、8、13、21、34、。此数列的变化规律是:1 1 (n=1n=1)1 1 (n=2n=2)f fn-1n-1+f+fn-2n-2 (n2n2)f fn n=l l设设变变量量f1f1、f2f2和和f3f3,并并为为f1f1和和f2f2赋赋初初值值1 1,令令f3=f1+f2f3=f1+f2得得到到第第3 3项;项;l l将将f1f2f1f2,f2f3 f2f3,再求再求f3=f1+f2f3=f1+f2得到第得到第4 4项;项;l l依此类推求第依此类推求第5 5项、第项、第6 6项项这是一种这是一种递推算法递推算法应采用循环实现应采用循环实现6.3 for6.3 for语句应用语句应用求求FibonacciFibonacci数列的前数列的前2020项。项。2024/7/1449算法和程序算法和程序:f1=1,f2=1并输出for(i=3;i=20;i+)f3=f2+f1 f1=f2,f2=f3 输出f3 输出输出5 5个数个数 T F 换行6.3 for6.3 for语句应用语句应用2024/7/1450所有用所有用 while while 语句实现的循环都可以用语句实现的循环都可以用for for 语句实现。语句实现。等价于:等价于:for(表达式表达式1;表达式表达式2;表达式表达式3)语句;语句;表达式表达式1;while(表达式表达式2)语句;语句;表达式表达式3;6.3 for6.3 for语句转换语句转换3 3、forfor语句、语句、whilewhile语句的相互转换语句的相互转换2024/7/1451三种循环语句的比较:三种循环语句的比较:while和和do-while语句的语句的表达式只有只有一个,for语句有语句有三个。while 和和for先判断循环条件循环条件后执行循环体,循环体,do-while语句语句先执行循环体循环体后判断循环条件。循环条件。while语句多用于循环次数不定循环次数不定的情况do-while语句多用于至少要运行一次至少要运行一次的情况for语句多用于要赋初值赋初值或循环次数固定循环次数固定的情况6.3 for6.3 for语句比较语句比较2024/7/1452熟悉几个循环语句:熟悉几个循环语句:6.3 6.3 循环语句特殊用法循环语句特殊用法l while(!x)x+;当 x=0 时,执行循环体x+;lwhile(c=getchar()!=n)n=n+1;n 称为计数器,作用是统计输入字符的个数lwhile(num+5);先执行循环体x*=-3,再判断条件(x5)lfor(n=0;n26;n+)printf(%c ,n+A);作用是输出26个大写字母lfor(sum=0,i=1;i=100;sum=sum+i,i+=2);作用是计算100以内的奇数和 6.3 for语句的应用语句的应用总结:总结:1)本本节节课课主主要要是是for循循环环的的实实际际应应用用,确确定定循循环环体体、分分析析出出循环条件是解题的关键。循环条件是解题的关键。2)注意)注意for中三个表达式的作用中三个表达式的作用3)有有些些复复杂杂的的问问题题,单单重重的的for解解决决不不了了,需需要要用用到到循循环环嵌嵌套套 主要内容:主要内容:6.16.1 whilewhile语句语句6.26.2 do-whiledo-while语句语句6.36.3 forfor语句语句6.4 6.4 循环嵌套循环嵌套6.5 6.5 循环控制语句循环控制语句思考,如何输出下列图形?思考,如何输出下列图形?用来输出一行中的用来输出一行中的7个个*字符:字符:重复书写三次相同的代码,重复书写三次相同的代码,用来输出三行用来输出三行7列的列的*字符字符2024/7/1458如果循环语句的循环体内又包含了另一条循环语句,如果循环语句的循环体内又包含了另一条循环语句,则称为则称为循环的嵌套循环的嵌套。WhileWhile、do-whiledo-while和和forfor三种循环语句,可以嵌套本身,三种循环语句,可以嵌套本身,也可以相互嵌套。也可以相互嵌套。6.4 6.4 循环的嵌套循环的嵌套1 1、格式、格式几种循环嵌套格式如下(几种循环嵌套格式如下(6种):种):几种循环嵌套格式如下(几种循环嵌套格式如下(6种):种):循环嵌套执行过程:循环嵌套执行过程:无论上述无论上述6种中的哪一种嵌套格式,种中的哪一种嵌套格式,程序的执行都是从外层循环进来,程序的执行都是从外层循环进来,当内层循环执行结束,再执行外层循环的第二次,当内层循环执行结束,再执行外层循环的第二次,类似于地球围绕太阳公转一圈时,自转了类似于地球围绕太阳公转一圈时,自转了365圈。圈。2024/7/1461注意:注意:whilewhile、do-whiledo-while、forfor循环语句可以并列,也可以相互嵌套,但要层次清楚,不能出现交叉。6.4 6.4 循环的嵌套循环的嵌套外循环外循环内循环内循环交叉循环交叉循环外循环外循环入口入口内循环出口内循环出口内循环出口内循环出口外循环出口外循环出口2024/7/1462多重循环程序执行时,外层循环每执行一次,内层循环都需要循环执行多次。例如:for(a=1;a=10;a+)for(b=0;b=5;b+)外循环外循环执行了执行了1010次,次,内循环内循环执行执行6 6次次循环正常结束时,内循环执行了循环正常结束时,内循环执行了106=60106=60次次 6.4 6.4 循环的嵌套循环的嵌套2024/7/1463#include main()int i,j;for(i=1;i10;i+)for(j=1;j=i;j+)printf(j=i)?%4dn:%4d,i*j);外循环语句内循环语句 for(j=1;j=i;j+)printf(%4d,i*j);printf(“n);if(j=i)printf(%4dn,i*j);else printf(%4d,i*j);6.4 6.4 循环的嵌套循环的嵌套例如:输出乘法口诀的九九表例如:输出乘法口诀的九九表 2024/7/1464【例【例6.9】编程序,输出以下图形。编程序,输出以下图形。*一共有一共有4 4 行,每行由空格和星号组成:空格数按行增行,每行由空格和星号组成:空格数按行增加,星号按行减少加,星号按行减少 变量变量 i 控制输出行数,控制输出行数,从从1变化到变化到4 变量变量 j 控制输出每行的空格和星号:控制输出每行的空格和星号:j 从从1变化到变化到 i,每次输出一个空格每次输出一个空格 j 从从1变化到变化到 8-2*i1,每次输出一个星号每次输出一个星号使用使用双重循环双重循环实现实现思路:思路:6.4 6.4 循环的嵌套循环的嵌套2024/7/1465算法和程序:算法和程序:main()int i,j;for(i=1;i=4;i+)for(j=1;j=i-1;j+)printf();for(j=1;j=8-(2*i-1);j+)printf(*);printf(n);for(i=1;i=4;i+)for(j=1;j=i-1;j+)输出一个空格 for(j=1;j=8-(2*i-1);j+)输出一个星号 换行思考:思考:如何输出如何输出10行行图形?图形?输出图形向右输出图形向右平移平移20个字符个字符位置,位置,应如何修改程序?应如何修改程序?6.4 6.4 循环的嵌套循环的嵌套2024/7/1466思路:思路:思路:思路:素数是指只能被素数是指只能被1 1和它本身整除的数,如和它本身整除的数,如5 5、7 7、1111、1717、等。等。分别用2、3、,m-1(1m101)尝试能否整除整数m m。如果如果mm能被某个能被某个数数整除,则整除,则mm就不是素数就不是素数。l l这是一种这是一种穷举算法穷举算法l l设被除数为设被除数为i,从,从2 2循环到循环到100100l l设除数为设除数为k,从,从2 2循环到循环到i-1i-1【例例6.10】编写程序,找出编写程序,找出2100以内的所有质数(素数)以内的所有质数(素数)6.4 6.4 循环的嵌套循环的嵌套2024/7/1467程序:程序:6.4 6.4 循环的嵌套循环的嵌套程序运行结果:程序运行结果:2、3、5、7、11、13、17、19、23、29、31、37、41、43、47、53、59、61、67、71、73、79、83、89、976.4 循环嵌套循环嵌套总结总结1)注意循环嵌套的格式,不能交叉使用)注意循环嵌套的格式,不能交叉使用2)区分好循环嵌套和循环并列)区分好循环嵌套和循环并列3)掌握循环嵌套的执行过程,能够读懂程序)掌握循环嵌套的执行过程,能够读懂程序4)建议先写内层循环,然后再补充外层循环)建议先写内层循环,然后再补充外层循环5)注意内层循环变量赋初值的位置)注意内层循环变量赋初值的位置虽虽然然,能能判判断断i是是否否为为素素数数,但但是是程程序序的的执执行行效效率率不不高高,改改进的办法,采用程序跳转语句:进的办法,采用程序跳转语句:break;和;和continue;主要内容:主要内容:6.16.1 whilewhile语句语句6.26.2 do-whiledo-while语句语句6.36.3 forfor语句语句6.4 6.4 循环嵌套循环嵌套6.5 6.5 循环控制语句循环控制语句2024/7/1471有如下两种语句实现跳转:breakbreak语句语句 continuecontinue语句语句 在循环语句的循环体中使用,可以进行循环的流程控制。6.5 6.5 循环控制语句循环控制语句2024/7/1472后续语句break;break;Y YN N表达式表达式?后续语句break;break;表达式表达式?Y YN N功能:利用break语句能够强迫终止本循环强迫终止本循环,转到后续语句执行。while语句语句do-while语句语句后续语句计算表达式计算表达式3 3计算表达式计算表达式1 1break;break;表达式表达式2?2?Y YN Nfor语句语句6.5 6.5 循环控制语句循环控制语句1 1、breakbreak语句语句2024/7/1473 int x,n=0,s=0;int x,n=0,s=0;while(n5)scanf(%d,&x);if(x0)break;if(x0)break;s+=x;n+;printf(“%d”,s);int x,n=0,s=0;int x,n=0,s=0;dodo scanf(%d,&x);scanf(%d,&x);if(x0)break;s+=x;n+;s+=x;n+;while(n5);while(n5);for(n=0,s=0;n5;n+)for(n=0,s=0;n5;n+)scanf(%d,&x);scanf(%d,&x);if(x5000 T F 终止 循环 打印s,i值【例例6.11】计算计算s=1+2+3+i,直到累加到直到累加到s大于大于5000为止,输为止,输出出s和和i的值。的值。6.5 6.5 循环控制语句循环控制语句2024/7/1476后续语句continue;continue;Y YN N表达式表达式?后续语句continue;continue;表达式表达式?Y YN N功功能能:中断循环体的本次执行(即跳过循环体中尚未执行的语句),立即开始执行下一次循环。立即开始执行下一次循环。while语句语句do-while语句语句后续语句计算表达式计算表达式3 3计算表达式计算表达式1 1continue;continue;表达式表达式2?2?Y YN Nfor语句语句6.5 6.5 循环控制语句循环控制语句2 2、continuecontinue语句语句2024/7/1477 int x,n=0,s=0;int x,n=0,s=0;while(n5)scanf(%d,&x);if(x0)continue;s+=x;n+;int x,n=0,s=0;int x,n=0,s=0;dodo scanf(%d,&x);scanf(%d,&x);if(x0)continue;s+=x;n+;s+=x;n+;while(n5);while(n5);for(n=0,s=0;n5;n+)for(n=0,s=0;n5;n+)scanf(%d,&x);scanf(%d,&x);if(x0)continue;s+=x;s+=x;例如例如 :6.5 6.5 循环控制语句循环控制语句2024/7/14786.5 6.5 循环控制语句循环控制语句综合练习:综合练习:【例例6.14】编写一个人机互动的编写一个人机互动的猜数字游戏猜数字游戏。要求,系统。要求,系统随随机产生机产生一个一个0-10之间的整型数据,人有之间的整型数据,人有3次次猜的机会。如果猜的机会。如果猜对了,则给出提示:猜对了,则给出提示:“第几次,恭喜你,猜对了!第几次,恭喜你,猜对了!”。如。如果人给出的数据大了,则给出提示:果人给出的数据大了,则给出提示:“第几次,第几次,too bigger!”。如果人给出的数据小了,则给出提示:。如果人给出的数据小了,则给出提示:“第几次,第几次,too smaller!”。如果,猜的次数超过了。如果,猜的次数超过了3次,则给出提示:次,则给出提示:“您猜的次数已经达到了您猜的次数已经达到了3次,强制退出游戏!次,强制退出游戏!”。2024/7/14796.5 6.5 循环控制语句循环控制语句2024/7/14806.5 6.5 循环控制语句循环控制语句2024/7/14816.5 6.5 循环控制语句循环控制语句 if(n=3)continue;printf(您猜的次数已经达到了3次!n);break;return 0;6.5 6.5 循环控制语句循环控制语句总结总结break;和;和continue;后面的分号不能省略;后面的分号不能省略break和和continue语句能够改变程序的流程语句能够改变程序的流程break能能够够结结束束本本层层循循环环、continue能能够够结结束束本本次次循环循环break语语句句的的位位置置,switch结结构构和和循循环环中中;而而continue只能出现在循环中只能出现在循环中
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!