1、1.2.3 循环语句自 学 导 引1.了解由条件语句实现循环的方法.2.会利用循环语句编写程序.3.要注意不同循环结构的区别与联系.课 前 热 身1.算法中的_结构是用循环语句来实现的,对应于循环结构中的两种循环结构,一般程序设计语言中也有_型和_型两种语句结构,即WHILE语句和UNTIL语句.循环当直到2.WHILE语句的一般格式是:当计算机遇到WHILE语句时,先判断条件的真假,如果条件符合,就_,每次开始执行循环体前都要判断_.这样反复进行,一直到_时,就直接跳到WEND语句后,接着执行WEND之后的语句.因此“当型循环”有时也称为“_”循环.WHILE 条件循环体WEND前测试执行循
2、环体条件的真假某一次条件不符合为止如下图表示WHILE语句的结构3.UNTIL语句的一般格式是DO循环体LOOP UNTIL 条件对应的程序框图如下:名 师 讲 解1.WHILE语句(1)WHILE语句的一般格式是:WHILE 条件循环体WEND.(2)计算机执行此程序时,遇到WHILE语句,先判断条件是否成立,如果成立,则执行WHILE和WEND之间的循环体,然后再判断上述条件,如果条件仍成立,再次执行循环体,这个过程反复执行,直到某一次不符合条件为止,这时不再执行循环体,直接跳到WEND语句后,执行WEND后面的语句.(3)WHILE语句对应的基本框图(当型循环)如图所示:2.UNTIL语
3、句(1)UNTIL语句的一般格式是:DO循环体LOOP UNTIL条件.(2)计算机执行UNTIL语句时,先执行DO和LOOP UNTIL之间的循环体,然后判断条件是否成立,如果不成立,执行循环体.这个过程反复执行,直到某一次符合条件为止,这时不再执行循环体,跳出循环体执行LOOP UNTIL后面的语句.(3)UNTIL语句对应的基本框图(直到型)如图所示:3.当型循环与直到型循环的区别(1)当型循环先判断后执行,直到型循环先执行后判断.(2)当型循环用WHILE语句,直到型循环用UNTIL语句.(3)对同一算法来说,当型循环和直到型循环的条件互为反条件.4.在用WHILE语句和UNTIL语句
4、编写程序解决问题时,一定要注意它们的格式及条件的表述方法.WHILE语句中是当条件满足时执行循环体,而UNTIL语句中是当条件不满足时执行循环体.在解决一些需要反复执行的运算任务,如累加求和累乘求积等问题中应主要考虑利用循环语句来实现,但也要结合其他语句如条件语句.典 例 剖 析题型一 累加问题例1:编写一个程序计算12+32+52+9992,并画出相应的程序框图.分析:由题意知各项指数相同,底数相差为2.可以借助于循环语句设计算法.解:方法1:程序框图如下图:程序为:s=0i=1WHILE S999PRINT sEND规律技巧:本题是一个累加求和问题.自然想到用循环语句设计算法.算法的设计又
5、带有灵活性和通用性,熟练地掌握这一类题的解法,对于解决与此相关的问题有很大帮助.分析:设置累加求和,用循环语句实现,可用WHILE语句.解:方法一:s=1i=2WHILE i100PRINT END题型二 累乘问题例2:(2009广东模拟)试编写程序求满足1357_10000的最小正整数.分析:将1357i求积,然后与10000比较,如果大于10000就输出i;否则继续循环,直到找出i为止.解:用UNTIL语句编写程序如下:S=1i=1DOi=i+2S=S*iLOOP UNTIL S10000PRINT iEND规律技巧:本题是求1357的累积,从题设中能找到三个信息:循环变量i;每次增加2;
6、循环体S=S*i,循环结束的条件是S10000.变式训练2:对例2,请用WHILE语句编写程序.解:用WHILE语句编写程序如下:S=1i=1WHILE S=10000i=i+2S=S*iWENDPRINT iEND题型三 循环语句的综合应用例3:某商场第一年销售计算机5000台,如果平均每年销售量比上一年增加10%,那么从第一年起,大约几年可使总销售量达到30000台?分析:根据题意,每年销售量比上一年增加的百分率相同,设总和为S,n年达到30000台.第一年销售了5000台;第二年销售了5000+500010%=5000(1+10%)(台);第三年销售了5000(1+10%)+5000(1
7、+10%)10%=5000(1+10%)2(台);第n年销售了5000(1+10%)n-1(台).总和S=5000+5000(1+10%)+5000(1+10)2+5000(1+10%)n-1.解:程序框图如下图所示:程序如下:m=5000S=0i=0WHILE S30?P=i(2)程序如下:P=1S=0i=1DOS=S+PP=ii=i+1LOOP UNTIL i30PRINT SEND题型四 理解循环语句的执行过程例4:(2009广东模拟)分别写出下列算法语句(1)和(2)运行的结果(1)_;(2)_.(1)(2)S=0i=0DOS=S+ii=i+1LOOP UNTIL S20PRINT i
8、ENDS=0i=0DOi=i+1S=S+iLOOP UNTIL S20PRINT iEND 76解析:由程序(1)知S=0+1+2+3+4+5+6=2120,终止运行,此时i=7.对于程序(2)有S=1+2+3+4+5+6=2120,终止运行,此时,循环执行了6次,所以i=6.变式训练4:(2009江苏连云港第二次调研)下面的程序的结果是_.i=1S=1WHILE i=4S=Sii=i+1WENDPRINT SEND答案:24在x=x0时的值的算法中,下列语句不可用到的是()A.输入语句B.输出语句C.条件语句D.循环语句解析:因为是求分段函数f(x)在x=x0时的值,所以须用条件语句,当然输
9、入输出语句必不可少,因此应选D.答案:D2.关于WHILE语句的一般格式中说法正确的是()A.总是执行循环体B.执行一次循环体C.循环控制条件为真时执行循环体D.遇到WEND就结束解析:由当型循环结构的特征知,在每次执行循环体前,对条件进行判断,当条件满足时,执行循环体,否则终止循环体,因此应选C.答案:C3.有以下程序段,其中正确的是()k=8WHILE k=0k=k+1WENDA.WHILE循环指行10次B.循环体是无限循环C.循环体语句一次也不执行D.循环体语句只执行一次解析:对于WHILE语句条件为真,则执行循环体,而本题k=8,不满足条件k=0,所以循环体语句一次也不执行.答案:C4
10、.根据下列的程序,可知输出的结果S为()INPUTI=1WHILE I8I=I+2S=2*I+3WENDPRINT SENDA.17 B.19C.21 D.23解析:第一次运算后I=1+2=3,I8;进行第二次运算:I=3+2=5,I8;进行第三次运算:I=5+2=7,I8,终止运算.此时输出S=27+3=17.答案:A5.编写程序求1+2+3+n的和(n由键盘输入).程序如下:INPUT ns=0i=1WHILE_s=s+ii=i+1WENDPRINT“s=”;sEND在上述程序的横线上应填()A.in B.in D.i=n解析:该程序应用当型循环结构,i为控制变量,每次循环增加1,因此应填
11、i=n,故选B.答案:B6.下面的程序执行后输出的结果是()n=5s=0WHILE s15s=s+nn=n-1WENDPRINT nENDA.-1 B.0 C.1 D.2解析:阅读该程序知,该程序运行了5次,此时s=5+4+3+2+1=15,终止运行,因此n=5-5=0,应选B.答案:B解析:结合算式及程序框图知,该程序循环10次,应用的当型循环结构,因此应填i=10?答案:i=10?8.根据下列程序画出相应的程序框图.s=1n=1WHILE s1000s=s*nn=n+1WENDPRINT nEND解:程序框图如图:能力提升9.阅读下面的程序,回答下面的问题.i=1sum=0WHILE i1
12、00PRINT sumEND10.(2010山东模拟)程序如下:x=100i=1DOx=x+10PRINT i,xi=i+1LOOP UNTIL x=200END该程序运行的结果是_.答案:1,110;2,120;3,130;4,140;5,150;6,160;7,170;8,180;9,190;10,20011.某程序框图如下图所示,该程序运行后输出k的值是()A.4 B.5C.6 D.7解析:k=0,S=0,S100,S=0+20=1;k=1,S100,S=1+21=3;k=2,S100,S=3+23=11;k=3,S100,程序运行结束,此时输出k=4.答案:A12.下图是求12+22+32+1002的值的程序框图,则正整数n=_.答案:100