s=0
do until i>100 s=s+i
i=i+1
loop print ―1+2+3+….+100=‖; s end sub
do...loop 循环(2)
形式三: do 循环体
loop while <条件> 功能:先执行循环体,然后判断条件, 当条件为真(true)时,继续执行循环体. 否则为假(flase),退出循环体. 形式四:
do 循环体 loop until <条件> 功能:先执行循环体,然后判断条件,当 条件为真(true)时,退出循环体.否则为假 (flase)时,继续执行循环体.
注意,本语句执行循环的最少次数为1.
例子:求s = 1 + 2 + 3 + … + 100
使用do …loop while 语句: private sub form _click() dim i,s as integer s=0 do s=s+i i=i+1 loop while i<=100 print ―1+2+3+….+100=‖; s
end sub 使用do …loop until 语句: private sub form _click() dim i,s as integer s=0 do
s=s+i
i=i+1 loop until i>100 print ―1+2+3+….+100=‖; s end sub
三种循环语句比较 示例:求和s = 1 + 2 + 3 + … +
100
for…next s=0 for i=1 to 100 s=s+i next k print s 前测型 s=0:i=1 do while i<=100 s=s+i i=i+1 loop print s
后 测 型
s=0 : i=1 do s=s+i i=i+1 loop while i<=100 print s
例3.11 输入两个正整数,求它们的最大公约数
―辗转相除法”算法:求出m/n余数p,若p=0,n即为最大公约数;若p非0, 则把原来的分母n作为新的分子m,把余数p作为新的分母n继续求解 设计步骤如下: (1)创建应用程序的用户界面和设置对象属性
do..loop示例:
编写的“计算”按钮click事件过程代码如下: private sub command1_click() dim m as integer, n as integer, p as integer m = val(text1.text) : n = val(text2.text) if m <= 0 or n <= 0 then msgbox ("数据错误!") end end if do p = m mod n m=n n=p loop while p <> 0 text3.text = m end sub 若输入的m和n的值为85和68,则运行结果如上图
例3.12 求 s=12 + 22 + … + 1002
采用do while...loop语句
采用print直接在窗体上输出结果,程序代码: private sub form_load() dim n as integer, s as long show n = 1: s = 0 do while n <= 100 s=s+n*n n=n+1 loop print "s="; s end sub 程序运行结果: s=338350
多重循环:
例3.13多重循环程序示例 private sub form_click()
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-29087-16.html
却患了重病
超级好看