1、第13节Do循环结构学习目标知识条目考试要求考试属性考试形式Do语句语法应用学考加试客观主观Do循环结构应用应用学考加试主观1Do语句Do语句是VB中一种循环结构的语法,主要关键字是Do While和Loop,Do语句通过条件限制来控制循环过程,一般格式如下:Do While条件表达式循环体语句Loop2Do语句和For语句的比较Do语句For语句关键字Do While LoopFor To Step Next优点应用范围广代码简洁,循环次数可控缺点循环次数未知,代码稍多无法用于不确定次数的情况3.Do结构的应用Do结构适用于只知道终止条件,但无明确循环次数的情况,也可以把用For语句编写的程
2、序改编成用Do语句。注1.条件表达式中的变量,至少有一个在一轮循环中会发生变化,否则就会死循环。2把For语句改写为Do语句时,代码会多出两句,终止条件写法也会改变。例1以下问题最适合用Do结构编程的是()A计算一元二次方程的实数根B寻找11000之内的素数个数C已知一张纸的厚度,请问对折几次可以超过10000米D古代百鸡问题,有100元钱买100只鸡,已知鸡的种类和数量,求鸡的数量例2有如下程序,右侧用Do语句重新书写,在划线处填上合适语句。sum10For i1 To 10 Step 2sumsumiNext iText 1.TextStr(sum)sum10: Do While sums
3、umi LoopText 1.TextStr(sum)一、基础巩固1Do语句除了关键字Do While ,还有 。2有一个For语句是这样的,For a1 To 5 ,改成Do语句后需要增加的两句代码是 和 。3以下不适合用Do语句表示的算法是()A韩信点兵,已知手下的兵除7余2,除5余3,除3余1,问至少有多少兵B用表达式求一元二次方程的近似解,误差小于0.001结束C已知半径和高度,求圆锥的表面积D有一组数据,挑出其中10个大于100的数据4有如下VB程序,运行后x的值为()x1:y3Do While x 15xyx*2LoopA1 B8 C13 D295以下程序计算表达式sum11/21
4、/31/n的值,当1/n1/(n1)0.001时结束计算,请补充划线处代码。Dim i As Integer,sum As Double,e As Doublei1:e1:sum0Do While sum e1/i1/(1i) LoopText1.Text Str(sum)二、能力提升6有如下程序段,运行后变量k的值为()s0:k0Do While s 10sskkk2LoopA2 B4 C6 D87有如下程序段,要使循环体运行3次,条件表达式应为()a1:b1Do While aabb2*aLoopA.b5B.b10 Cb15 Db408下列程序的功能是计算s1()Dim s As Inte
5、ger,n As Integers1:n1Do While ss*nnn1LoopAn10 Bn8 Cn10 Dn 129如下VB程序段是整段程序核心部分,运行后()a1:b2Do While ab,计算tab第2步:ab,bt第3步:返回第1步,直到余数为0,此时的b就是最大公约数Dim a As Integer,b As Integer,t As Integera Val(Text1.Text):b Val(Text2.Text)If Then ta:a b:b tDo While ta Mod babbtLoopText3.Text 划线处应填入代码 。 。 。11圆周率pai的计算有一
6、个公式是这样的:pai/411/31/51/7,编写程序计算,要求算出的结果与圆周率3.14159相差不超过0.0001,程序如下,完善划线处代码。Dim i As Long,n As Integer,sum As DoubleConst p 3.14159sum 0: i 1:n 0Do While Abs(4 * sum p) 0.0001sum sum (1) n / I nn1LoopText1.Text 答案精析典例精析例1CA不需要循环,B和D都可以在可以算出来的次数内解决,只有C无法预知计算次数,必须用Do循环结构。例2i1i10ii2解析任何For语句都可以用Do语句改编,意思
7、保持不变。在用Do语句改编For语句时,会多出两句:第一句是在Do循环之前多一句循环变量赋初值,第二句是在循环体中适当位置(一般在循环体最后部分)循环变量循环变量步长,另外循环的条件表达式与For语句相比也有变化。达标检测1Loop2a1aa13C圆锥的表面积不需要循环,A、D最适合用For语句,但Do语句也可以用。4Dy的值一直不变,x的取值分别是1、5、13、29。5e0.001sum1/iii16D各轮循环之后s、k的值,1轮:0、2,2轮:2、4,3轮:6、6,4轮:12、8。7C仔细分析,各轮之后a和b的值分别为,1轮为2、4,2轮6、12,3轮18、36,下一轮为54、108,结合题意,要求b的值限制在1236之间。8B整型变量的范围在正负215(a,循环不会终止。10abb0Str(a)解析处在循环前要保证ab,若ab,就交换两个数据。循环判断条件为b0。循环体中计算ta Mod b,ab,bt,三句执行后除数存在a,余数存在b,所以最后的公约数存在a,输出时要加Str函数,最终形式为Str(a)。11ii2Str(4解析观察公式,i每次加2,在循环体中还没有另外说明,所以处为ii2 ,根据公式,计算的sum是圆周率的1/4,输出时应为Str(4