1、1.2.3 1.2.3 循环语句循环语句循环语句循环语句算法中的循环构造是由循环语句来实现的算法中的循环构造是由循环语句来实现的.循环构造有两种循环构造有两种-当型与直到型当型与直到型.满足条件?满足条件?循环体循环体是是否否当型循环构造当型循环构造(当条件满当条件满足时重复执行循环体足时重复执行循环体)直到型循环构造直到型循环构造(重复执重复执行循环体直到条件满足行循环体直到条件满足)循环体循环体是是否否满足条件?满足条件?对应于程序框图中的两种循环构造,普通对应于程序框图中的两种循环构造,普通程序设计语言中也有当型(程序设计语言中也有当型(WHILEWHILE型)和直到型型)和直到型(UN
2、TILUNTIL型)两种语句构造。型)两种语句构造。(1)UNTIL(1)UNTIL语句的普通格式是语句的普通格式是:DODO 循环体循环体LOOP UNTIL LOOP UNTIL 条件条件循环体循环体是是否否满足条件?满足条件?直到型循环结构直到型循环结构DODO做什么做什么LOOP UNTILLOOP UNTIL绕环回线走绕环回线走,直达成到某种直达成到某种 条件为止条件为止思考思考:参考其直到型循环构造对应的程序框图参考其直到型循环构造对应的程序框图,说说说说计算机是按如何的次序执行计算机是按如何的次序执行UNTILUNTIL语句的?语句的?即即WHILEWHILE语句和语句和UNTI
3、LUNTIL语句。语句。(1)UNTIL(1)UNTIL语句的普通格式是语句的普通格式是:DODO 循环体循环体LOOP UNTIL LOOP UNTIL 条件条件循环体循环体是是否否满足条件?满足条件?直到型循环结构直到型循环结构 从从UNTILUNTIL型循环构造分析型循环构造分析,计算机执行该语句计算机执行该语句时时,先执行一次循环体先执行一次循环体,然后进行条件的判断然后进行条件的判断,如果条如果条件不满足件不满足,继续返回执行循环体继续返回执行循环体,然后再进行条件的然后再进行条件的判断判断,这个过程重复进行这个过程重复进行,直到某一次条件满足时直到某一次条件满足时,不不再执行循环体
4、再执行循环体,跳到跳到LOOP UNTILLOOP UNTIL语句后执行其它语句语句后执行其它语句,是先执行循环体后进行条件判断的循环语句是先执行循环体后进行条件判断的循环语句.循环最循环最少被执行一次少被执行一次(2)WHILE(2)WHILE语句的普通格式是语句的普通格式是:WHILE WHILE 条件条件 循环体循环体WENDWEND其中循环体是由计算机重复执行的一组语句其中循环体是由计算机重复执行的一组语句构成的。构成的。WHLIEWHLIE背面的背面的“条件条件”是用于控制计算机是用于控制计算机执行循环体或跳出循环体的。执行循环体或跳出循环体的。WHILEWHILE当当 时候时候WE
5、NDWEND朝朝方向方向 行走行走(2)WHILE(2)WHILE语句的普通格式是语句的普通格式是 WHILE 条件条件 循环体循环体WEND 当计算机碰到当计算机碰到WHILEWHILE语句时语句时,先判断条件的真假先判断条件的真假,如果条件如果条件符合符合,就执行就执行WHILEWHILE与与WENDWEND之间之间的循环体的循环体;然后再检查上述条然后再检查上述条件件,如果条件仍符合如果条件仍符合,再次执行再次执行循环体循环体,这个过程重复进行这个过程重复进行,直直到某一次条件不符合为止到某一次条件不符合为止.这这时时,计算机将不执行循环体计算机将不执行循环体,直直接跳到接跳到WENDW
6、END语句后语句后,接着执行接着执行WENDWEND之后的语句之后的语句.满足条件?满足条件?循环体循环体是是否否当型循环结构当型循环结构提问提问:通过对照通过对照,大家觉得大家觉得WHILEWHILE型语句与型语句与UNTILUNTIL型型语句之间有什么区别呢?语句之间有什么区别呢?区别区别:在:在WHILEWHILE语句中语句中,是当条件是当条件满足满足时执行循环时执行循环体体,而在而在UNTILUNTIL语句中语句中,是当条件是当条件不满足不满足时执行循环时执行循环体。体。WHILEWHILE语句的一般格式语句的一般格式WHILE WHILE 条件条件 循环体循环体WENDWENDUNT
7、ILUNTIL语句的一般格式语句的一般格式DODO 循环体循环体LOOP UNTIL LOOP UNTIL 条件条件练习练习1.1.编写程序编写程序,计算自然数计算自然数1+2+3+1+2+3+99+100+99+100的和的和.分析分析:这是一种累加问题这是一种累加问题.我们能我们能够用够用WHILEWHILE型语句型语句,也能够用也能够用UNTILUNTIL型语型语句。句。UNTILUNTIL语句语句开始开始结束结束i=1S=0i=i+1S=S+i输出输出Si100?否否是是直到型直到型i=1S=0DOS=S+ii=i+1LOOP UNTIL i100PRINT SENDWHILEWHIL
8、E语句语句开始开始结束结束i=1S=0i=i+1S=S+i输出输出Si100?是是否否当型循环结构当型循环结构i=1S=0WHLIE i20PRINT“x=”;x,“y=”;yENDn=n+1程序程序直到型直到型当型当型n=1WHILE n=20y=x2-3x+5WENDPRINT “x=”;x,“y=”;yENDn=n+1程序程序练习练习3.图图1.1-20转化成程序语言转化成程序语言程序框图程序框图程序程序INPUT“a,b,d=”;a,b,dDOm=(a+b)/2f=m2-2g=a2-2IF gf0 THENb=mELSEa=mEND IFLOOP UNTIL ABS(a-b)d OR
9、f=0PRINT mEND继续继续是是是是否否f(a)f(m)0?程序框图程序框图开始开始f(x)=x2-2输入误差输入误差d和初值和初值a,bb=m否否a=m|a-b|d或或f(m)=0?输出输出m结束结束返回返回练习练习4,求,求S=1+1/2+1/3+1/n,编写程序编写程序程序程序INPUT“n=”;ni=1S=0WHILE i=nS=S+1/ii=i+1WENDPRINT“S=”;SEND练习练习5.P33页页A组组T3.程序程序INPUT“n=”;ni=1S=0WHILE in-1或r=0?r=0?N不是质数N是质数结束是否是否结束否开始求n除以i的余数ri的值增加1,仍用i表示i
10、n-1或r=0?是r=0?N不是质数N是质数是否输入ni=2根据根据P7P7页图页图1.1-2,1.1-2,将程序框将程序框图转化为程序语句图转化为程序语句.练习练习.P32T1分析分析:认真观察认真观察,该程序框图中现有条件构造该程序框图中现有条件构造,又又有循环构造。有循环构造。INPUT “n=”;ni=2DO r=n MOD i i=i+1LOOP UNTIL i=n OR r=0IF r=0 THEN PRINT“n is not a prime number.”ELSE PRINT“n is a prime number.”END IFEND程序程序练习练习7.P32T2编写一种程序,输入正整数编写一种程序,输入正整数n,计算它的,计算它的 阶乘阶乘n!(n!=n*(n-1)*3*2*1)t=1i=1INPUT 请输入请输入n的值:的值:;nDO t=t*i i=i+1LOOP UNTIL inPRINT 这个数的阶乘为:这个数的阶乘为:;tEND小小 结结WHILE 条件条件 循环体循环体WENDDO 循环体循环体LOOP UNTIL 条件条件两种循环语句:两种循环语句:循环体循环体满足条件?满足条件?是是否否(1)While(当型)循环(当型)循环(2)Until(直到型)循环(直到型)循环循环体循环体满足条件?满足条件?是是否否