1、循环程序设计教学目的:1、 熟悉 VB 循环程序的一般设计方法。2、 掌握 VB 循环语句的实现方法。教学重点:1、 VB 循环设计方法的理解。2、 VB 中一般循环的语句实现。 (三种循环的对比)3、 VB 中多重循环的实现语句。课时安排:理论教学安排 8 课时,上机练习 8 课时一、 循环的含义重复做相类似的程序代码。Private Sub Form_Click()i=1Print Tab(i); “*“i=i+1Print Tab(i); “*“i=i+1Print Tab(i); “*“Print Tab(4); “*“Print Tab(5); “*“Print Tab(6); “*
2、“Print Tab(7); “*“Print Tab(8); “*“Print Tab(9); “*“Print Tab(10); “*“End SubDim i as integerFor i=1 to 20 step 1Print tab(i);”*”Next iT循环初始条件循环条件循环体(改变循环条件语句)F循环执行过程:当循环条件满足时,执行循环体的内容,遇到循环的结束标志时再判断循环条件式,一直到条件式不成立时执行循环结束语句后的代码。二、 for next 循环(计数循环)格式:for 循环变量=初值 to 终值 step 步长next 循环变量 步长为 1 的时候,step
3、可以省缺。例如:For i=1 to 5 step 2Print i*2Next iPrint “i=”;i执行过程:1) 初值 1 送给 i2) 判定条件 i5 thenprint x*2elseprint x*3endifnext x2、P106 三(2) (3) (4)有一些循环无法确定初值及终值。用 fornext 循环不容易实现。已知循环的开始值为 n,计数的初值为 0,循环的条件:计数到 100 时停止。Private Sub Command1_Click()Dim i As IntegerDim n As Integern = Val(Text1.Text)i = 0Do Whi
4、le i 100(两种方式具有相同的功能,编程时可以随意选用)If n Mod 7 10000Dim s as integerDim I as integerS=0:I=1Do while s 10000S=s+I:I=i+1LoopPrint “最小的 N 值为” ifor j=1 to 2 step 1print “i=”;I,”j=”;jnext jnext i I=1 J=1J=2J=3, 转向 next iI=2J=1输出结果为:I=1I=1 j=1I=1 j=2I=2I=2 j=1J=2J=3, 转向 next iI=3J=1J=2J=3, 转向 next iI=4,转向 next
5、 I 的后继语句I=2 j=2I=3I=3 j=1I=3 j=2试分析下列程序结果:For i=2 to 6 step 3Print “i=”;iFor j=1 to 5 step 2Print “j=”;j; 保证内循环的结果在同一行Next jPrint 用来换行Next i 外循环(i=2,i=5)内循环(j=1,3,5)P127 例 5-16 输出乘法口诀表。Private Sub Command1_Click()Dim i As Integer 输出行Dim j As Integer 输出列For i = 0 To 9 Step 1 用来输出表的第一行Picture1.Print T
6、ab(4 * i + 1); i;Next iFor i = 1 To 9Picture1.Print Tab(1); i;For j = 1 To iPicture1.Print Tab(4 * j + 1); i * j;Next jPrintNext iEnd Sub2)Private Sub Command1_Click()Dim i As IntegerDim j As IntegerPicture1.ClsFor i = 1 To 7 Step 1有 7 个输出行Picture1.Print Tab(20 - i);每一行的开始输出位置。For j = 1 To 2 * i 1每行
7、输出个数Picture1.Print Chr(i + 48);Next jPrintNext iEnd Sub外循环 i 表示输出行内循环 j 表示每一行输出多少个字符。For i=1 to 7Print tab(20-i);For j=1 to 2*i-1Print chr(i+48);Next jPrint Next i编程输出下列图形:*For i=1 to 7Print tab(20-i);For j=1 to 2*i-1Print “*”;Next jPrint Next i*For i=1 to 7Print tab(10+i);For j=1 to iPrint “*”;Next
8、 jPrint Next i*For i=7 to 1 step -1Print tab(20-i);For j=1 to 2*i-1Print “*”;Next jPrint Next i4)求四位数 ABCD 其中 a=b,c=d,并且这个四位数是 78 的倍数。分析:由于 N 为四位数 ABCD 且有 A=B,C=D,则四位数 N 可写为 N=A*1100+C*11,A 可从1 变化到 9,C 可从 0 变化到 9,可构成双重循环。判定条件:n mod 78 =0For a= 1 to 9For c =0 to 9N= A*1100+C*11If n mod 78 =0 then print nNext cNext a 5)P118.习题 7For a = 1 to 9For b=1 to 9For c=0 to 9For d = 1 to 9N1=a*1000+b*100+c*10+dN2=b*1000+a*110+cN3=d*110+aIf n1-n2=n3 then Print “abcd 为” ;a;b;c;dEndifNext dNext cNext bNext a