VB 循环语句 VB中的循环语句中的for... 是怎么用的?
vb\u4e2d\u7684\u5faa\u73af\u8bed\u53e5\u4f7f\u7528\u5faa\u73af\u8bed\u53e5
\u4f7f\u7528\u5faa\u73af\u91cd\u590d\u6267\u884c\u4ee3\u7801
\u5faa\u73af\u7528\u4e8e\u91cd\u590d\u6267\u884c\u4e00\u7ec4\u8bed\u53e5\u3002\u5faa\u73af\u53ef\u5206\u4e3a\u4e09\u7c7b\uff1a\u4e00\u7c7b\u5728\u6761\u4ef6\u53d8\u4e3a False \u4e4b\u524d\u91cd\u590d\u6267\u884c\u8bed\u53e5\uff0c\u4e00\u7c7b\u5728\u6761\u4ef6\u53d8\u4e3a True \u4e4b\u524d\u91cd\u590d\u6267\u884c\u8bed\u53e5\uff0c\u53e6\u4e00\u7c7b\u6309\u7167\u6307\u5b9a\u7684\u6b21\u6570\u91cd\u590d\u6267\u884c\u8bed\u53e5\u3002
\u5728 VBScript \u4e2d\u53ef\u4f7f\u7528\u4e0b\u5217\u5faa\u73af\u8bed\u53e5\uff1a
Do...Loop\uff1a \u5f53\uff08\u6216\u76f4\u5230\uff09\u6761\u4ef6\u4e3a True \u65f6\u5faa\u73af\u3002
While...Wend\uff1a \u5f53\u6761\u4ef6\u4e3a True \u65f6\u5faa\u73af\u3002
For...Next\uff1a \u6307\u5b9a\u5faa\u73af\u6b21\u6570\uff0c\u4f7f\u7528\u8ba1\u6570\u5668\u91cd\u590d\u8fd0\u884c\u8bed\u53e5\u3002
For Each...Next\uff1a \u5bf9\u4e8e\u96c6\u5408\u4e2d\u7684\u6bcf\u9879\u6216\u6570\u7ec4\u4e2d\u7684\u6bcf\u4e2a\u5143\u7d20\uff0c\u91cd\u590d\u6267\u884c\u4e00\u7ec4\u8bed\u53e5\u3002
\u4f7f\u7528 Do \u5faa\u73af
\u53ef\u4ee5\u4f7f\u7528 Do...Loop \u8bed\u53e5\u591a\u6b21\uff08\u6b21\u6570\u4e0d\u5b9a\uff09\u8fd0\u884c\u8bed\u53e5\u5757\u3002\u5f53\u6761\u4ef6\u4e3a True \u65f6\u6216\u6761\u4ef6\u53d8\u4e3a True \u4e4b\u524d\uff0c\u91cd\u590d\u6267\u884c\u8bed\u53e5\u5757\u3002
\u5f53\u6761\u4ef6\u4e3a True \u65f6\u91cd\u590d\u6267\u884c\u8bed\u53e5
While \u5173\u952e\u5b57\u7528\u4e8e\u68c0\u67e5 Do...Loop \u8bed\u53e5\u4e2d\u7684\u6761\u4ef6\u3002\u6709\u4e24\u79cd\u65b9\u5f0f\u68c0\u67e5\u6761\u4ef6\uff1a\u5728\u8fdb\u5165\u5faa\u73af\u4e4b\u524d\u68c0\u67e5\u6761\u4ef6\uff08\u5982\u4e0b\u9762\u7684 ChkFirstWhile \u793a\u4f8b\uff09\uff1b\u6216\u8005\u5728\u5faa\u73af\u81f3\u5c11\u8fd0\u884c\u5b8c\u4e00\u6b21\u4e4b\u540e\u68c0\u67e5\u6761\u4ef6\uff08\u5982\u4e0b\u9762\u7684 ChkLastWhile \u793a\u4f8b\uff09\u3002\u5728 ChkFirstWhile \u8fc7\u7a0b\u4e2d\uff0c\u5982\u679c myNum \u7684\u521d\u59cb\u503c\u88ab\u8bbe\u7f6e\u4e3a 9 \u800c\u4e0d\u662f 20\uff0c\u5219\u6c38\u8fdc\u4e0d\u4f1a\u6267\u884c\u5faa\u73af\u4f53\u4e2d\u7684\u8bed\u53e5\u3002\u5728 ChkLastWhile \u8fc7\u7a0b\u4e2d\uff0c\u5faa\u73af\u4f53\u4e2d\u7684\u8bed\u53e5\u53ea\u4f1a\u6267\u884c\u4e00\u6b21\uff0c\u56e0\u4e3a\u6761\u4ef6\u5728\u68c0\u67e5\u65f6\u5df2\u7ecf\u4e3a False\u3002
Sub ChkFirstWhile()
Dim counter, myNum
counter = 0
myNum = 20
Do While myNum > 10
myNum = myNum - 1
counter = counter + 1
Loop
MsgBox "\u5faa\u73af\u91cd\u590d\u4e86 " & counter & " \u6b21\u3002"
End Sub
Sub ChkLastWhile()
Dim counter, myNum
counter = 0
myNum = 9
Do
myNum = myNum - 1
counter = counter + 1
Loop While myNum > 10
MsgBox "\u5faa\u73af\u91cd\u590d\u4e86 " & counter & " \u6b21\u3002"
End Sub
\u91cd\u590d\u6267\u884c\u8bed\u53e5\u76f4\u5230\u6761\u4ef6\u53d8\u4e3a True
Until \u5173\u952e\u5b57\u7528\u4e8e\u68c0\u67e5 Do...Loop \u8bed\u53e5\u4e2d\u7684\u6761\u4ef6\u3002\u6709\u4e24\u79cd\u65b9\u5f0f\u68c0\u67e5\u6761\u4ef6\uff1a\u5728\u8fdb\u5165\u5faa\u73af\u4e4b\u524d\u68c0\u67e5\u6761\u4ef6\uff08\u5982\u4e0b\u9762\u7684 ChkFirstUntil \u793a\u4f8b\uff09\uff1b\u6216\u8005\u5728\u5faa\u73af\u81f3\u5c11\u8fd0\u884c\u5b8c\u4e00\u6b21\u4e4b\u540e\u68c0\u67e5\u6761\u4ef6\uff08\u5982\u4e0b\u9762\u7684 ChkLastUntil \u793a\u4f8b\uff09\u3002\u53ea\u8981\u6761\u4ef6\u4e3a False\uff0c\u5c31\u4f1a\u8fdb\u884c\u5faa\u73af\u3002
Sub ChkFirstUntil()
Dim counter, myNum
counter = 0
myNum = 20
Do Until myNum = 10
myNum = myNum - 1
counter = counter + 1
Loop
MsgBox "\u5faa\u73af\u91cd\u590d\u4e86 " & counter & " \u6b21\u3002"
End Sub
Sub ChkLastUntil()
Dim counter, myNum
counter = 0
myNum = 1
Do
myNum = myNum + 1
counter = counter + 1
Loop Until myNum = 10
MsgBox "\u5faa\u73af\u91cd\u590d\u4e86 " & counter & " \u6b21\u3002"
End Sub
\u9000\u51fa\u5faa\u73af
Exit Do \u8bed\u53e5\u7528\u4e8e\u9000\u51fa Do...Loop \u5faa\u73af\u3002\u56e0\u4e3a\u901a\u5e38\u53ea\u662f\u5728\u67d0\u4e9b\u7279\u6b8a\u60c5\u51b5\u4e0b\u8981\u9000\u51fa\u5faa\u73af\uff08\u4f8b\u5982\u8981\u907f\u514d\u6b7b\u5faa\u73af\uff09\uff0c\u6240\u4ee5\u53ef\u5728 If...Then...Else \u8bed\u53e5\u7684 True \u8bed\u53e5\u5757\u4e2d\u4f7f\u7528 Exit Do \u8bed\u53e5\u3002\u5982\u679c\u6761\u4ef6\u4e3a False\uff0c\u5faa\u73af\u5c06\u7167\u5e38\u8fd0\u884c\u3002
\u5728\u4e0b\u9762\u7684\u793a\u4f8b\u4e2d\uff0cmyNum \u7684\u521d\u59cb\u503c\u5c06\u5bfc\u81f4\u6b7b\u5faa\u73af\u3002If...Then...Else \u8bed\u53e5\u68c0\u67e5\u6b64\u6761\u4ef6\uff0c\u9632\u6b62\u51fa\u73b0\u6b7b\u5faa\u73af\u3002
Sub ExitExample()
Dim counter, myNum
counter = 0
myNum = 9
Do Until myNum = 10
myNum = myNum - 1
counter = counter + 1
If myNum < 10 Then Exit Do
Loop
MsgBox "\u5faa\u73af\u91cd\u590d\u4e86 " & counter & " \u6b21\u3002"
End Sub
\u4f7f\u7528 While...Wend
While...Wend \u8bed\u53e5\u662f\u4e3a\u90a3\u4e9b\u719f\u6089\u5176\u7528\u6cd5\u7684\u7528\u6237\u63d0\u4f9b\u7684\u3002\u4f46\u662f\u7531\u4e8e While...Wend \u7f3a\u5c11\u7075\u6d3b\u6027\uff0c\u6240\u4ee5\u5efa\u8bae\u6700\u597d\u4f7f\u7528 Do...Loop \u8bed\u53e5\u3002
\u4f7f\u7528 For...Next
For...Next \u8bed\u53e5\u7528\u4e8e\u5c06\u8bed\u53e5\u5757\u8fd0\u884c\u6307\u5b9a\u7684\u6b21\u6570\u3002\u5728\u5faa\u73af\u4e2d\u4f7f\u7528\u8ba1\u6570\u5668\u53d8\u91cf\uff0c\u8be5\u53d8\u91cf\u7684\u503c\u968f\u6bcf\u4e00\u6b21\u5faa\u73af\u589e\u52a0\u6216\u51cf\u5c11\u3002
\u4f8b\u5982\uff0c\u4e0b\u9762\u7684\u793a\u4f8b\u5c06\u8fc7\u7a0b MyProc \u91cd\u590d\u6267\u884c 50 \u6b21\u3002For \u8bed\u53e5\u6307\u5b9a\u8ba1\u6570\u5668\u53d8\u91cf x \u53ca\u5176\u8d77\u59cb\u503c\u4e0e\u7ec8\u6b62\u503c\u3002Next \u8bed\u53e5\u4f7f\u8ba1\u6570\u5668\u53d8\u91cf\u6bcf\u6b21\u52a0 1\u3002
Sub DoMyProc50Times()
Dim x
For x = 1 To 50
MyProc
Next
End Sub
\u5173\u952e\u5b57 Step \u7528\u4e8e\u6307\u5b9a\u8ba1\u6570\u5668\u53d8\u91cf\u6bcf\u6b21\u589e\u52a0\u6216\u51cf\u5c11\u7684\u503c\u3002\u5728\u4e0b\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u8ba1\u6570\u5668\u53d8\u91cf j \u6bcf\u6b21\u52a0 2\u3002\u5faa\u73af\u7ed3\u675f\u540e\uff0ctotal \u7684\u503c\u4e3a 2\u30014\u30016\u30018 \u548c 10 \u7684\u603b\u548c\u3002
Sub TwosTotal()
Dim j, total
For j = 2 To 10 Step 2
total = total + j
Next
MsgBox "\u603b\u548c\u4e3a " & total & "\u3002"
End Sub
\u8981\u4f7f\u8ba1\u6570\u5668\u53d8\u91cf\u9012\u51cf\uff0c\u53ef\u5c06 Step \u8bbe\u4e3a\u8d1f\u503c\u3002\u6b64\u65f6\u8ba1\u6570\u5668\u53d8\u91cf\u7684\u7ec8\u6b62\u503c\u5fc5\u987b\u5c0f\u4e8e\u8d77\u59cb\u503c\u3002\u5728\u4e0b\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u8ba1\u6570\u5668\u53d8\u91cf myNum \u6bcf\u6b21\u51cf 2\u3002\u5faa\u73af\u7ed3\u675f\u540e\uff0ctotal \u7684\u503c\u4e3a 16\u300114\u300112\u300110\u30018\u30016\u30014 \u548c 2 \u7684\u603b\u548c\u3002
Sub NewTotal()
Dim myNum, total
For myNum = 16 To 2 Step -2
total = total + myNum
Next
MsgBox "\u603b\u548c\u4e3a " & total & "\u3002"
End Sub
Exit For \u8bed\u53e5\u7528\u4e8e\u5728\u8ba1\u6570\u5668\u8fbe\u5230\u5176\u7ec8\u6b62\u503c\u4e4b\u524d\u9000\u51fa For...Next \u8bed\u53e5\u3002\u56e0\u4e3a\u901a\u5e38\u53ea\u662f\u5728\u67d0\u4e9b\u7279\u6b8a\u60c5\u51b5\u4e0b\uff08\u4f8b\u5982\u5728\u53d1\u751f\u9519\u8bef\u65f6\uff09\u8981\u9000\u51fa\u5faa\u73af\uff0c\u6240\u4ee5\u53ef\u4ee5\u5728 If...Then...Else \u8bed\u53e5\u7684 True \u8bed\u53e5\u5757\u4e2d\u4f7f\u7528 Exit For \u8bed\u53e5\u3002\u5982\u679c\u6761\u4ef6\u4e3a False\uff0c\u5faa\u73af\u5c06\u7167\u5e38\u8fd0\u884c\u3002
\u4f7f\u7528 For Each...Next
For Each...Next \u5faa\u73af\u4e0e For...Next \u5faa\u73af\u7c7b\u4f3c\u3002For Each...Next \u4e0d\u662f\u5c06\u8bed\u53e5\u8fd0\u884c\u6307\u5b9a\u7684\u6b21\u6570\uff0c\u800c\u662f\u5bf9\u4e8e\u6570\u7ec4\u4e2d\u7684\u6bcf\u4e2a\u5143\u7d20\u6216\u5bf9\u8c61\u96c6\u5408\u4e2d\u7684\u6bcf\u4e00\u9879\u91cd\u590d\u4e00\u7ec4\u8bed\u53e5\u3002\u8fd9\u5728\u4e0d\u77e5\u9053\u96c6\u5408\u4e2d\u5143\u7d20\u7684\u6570\u76ee\u65f6\u975e\u5e38\u6709\u7528\u3002
\u56de\u7b54\u5982\u4e0b\uff1a
\u5982\uff1aFor i=0 to 999 '\u8fd9\u91cc\u7701\u7565Step\u8bf4\u660e\u6b65\u957f\u4e3a1\u5faa\u73af\u4f53Next i\u8bf4\u660e\u4ece0\u5230999\uff0c\u5faa\u73af1000\u6b21\u3002\u53c8\u5982\uff1aFor i=20 to 0 Step -2\u5faa\u73af\u4f53Next i\u8bf4\u660e\u4ece20\u52300\uff0c\u4ee5\u6b65\u957f\u4e3a-2\uff0c\u5faa\u73af10\u6b21
for\u8bed\u53e5\u662f\u5faa\u73af\u8bed\u53e5\uff0c\u5b83\u7684\u683c\u5f0f\u662f\uff1aFor \u53d8\u91cf=\u521d\u503c To \u7ec8\u503c \u3014Step \u6b65\u957f]
\u5faa\u73af\u4f53Next \u53d8\u91cf
\u6269\u5c55\u8d44\u6599\uff1a
VB\u7684\u7528\u9014
\u5f00\u53d1\u56fe\u5f62\u7528\u6237\u754c\u9762 (GUI) \u7684\u65b9\u6cd5\u3002\u4e0d\u9700\u7f16\u5199\u5927\u91cf\u4ee3\u7801\u53bb\u63cf\u8ff0\u754c\u9762\u5143\u7d20\u7684\u5916\u89c2\u548c\u4f4d\u7f6e\uff0c\u800c\u53ea\u8981\u628a\u9884\u5148\u5efa\u7acb\u7684\u5bf9\u8c61add\u5230\u5c4f\u5e55\u4e0a\u7684\u4e00\u70b9\u5373\u53ef\u3002\u5982\u679c\u5df2\u4f7f\u7528\u8fc7\u8bf8\u5982 Paint \u4e4b\u7c7b\u7684\u7ed8\u56fe\u7a0b\u5e8f\uff0c\u5219\u5b9e\u9645\u4e0a\u5df2\u638c\u63e1\u4e86\u521b\u5efa\u7528\u6237\u754c\u9762\u7684\u5fc5\u8981\u6280\u5de7\u3002
\u201cBasic\u201d\u6307\u7684\u662f BASIC (Beginners All-Purpose Symbolit Instruction Code) \u8bed\u8a00\uff0c\u4e00\u79cd\u5728\u8ba1\u7b97\u6280\u672f\u53d1\u5c55\u53f2\u4e0a\u5e94\u7528\u5f97\u6700\u4e3a\u5e7f\u6cdb\u7684\u8bed\u8a00\u3002
Visual Basic \u5728\u539f\u6709BASIC \u8bed\u8a00\u7684\u57fa\u7840\u4e0a\u8fdb\u4e00\u6b65\u53d1\u5c55\uff0c\u81f3\u4eca\u5305\u542b\u4e86\u6570\u767e\u6761\u8bed\u53e5\u3001\u51fd\u6570\u53ca\u5173\u952e\u8bcd\uff0c\u5176\u4e2d\u5f88\u591a\u548c Windows GUI \u6709\u76f4\u63a5\u5173\u7cfb\u3002
\u4e13\u4e1a\u4eba\u5458\u53ef\u4ee5\u7528 Visual Basic \u5b9e\u73b0\u5176\u5b83\u4efb\u4f55 Windows \u7f16\u7a0b\u8bed\u8a00\u7684\u529f\u80fd\uff0c\u800c\u521d\u5b66\u8005\u53ea\u8981\u638c\u63e1\u51e0\u4e2a\u5173\u952e\u8bcd\u5c31\u53ef\u4ee5\u5efa\u7acb\u5b9e\u7528\u7684\u5e94\u7528\u7a0b\u5e8f\u3002
Visual Basic \u4e0d\u4ec5\u662f Visual Basic \u7f16\u7a0b\u8bed\u8a00\u3002Visual Basic \u7f16\u7a0b\u7cfb\u7edf,MicrosoftExcel \u7684Appications Edition,Microsoft Access\u548cWindows\u7684\u8bb8\u591a\u5176\u4ed6\u5e94\u7528\u7a0b\u5e8f\u90fd\u4f7f\u7528\u8fd9\u4e00\u8bed\u8a00
Visual Basic Scripting Edition (VBScript) \u662f\u5e7f\u6cdb\u4f7f\u7528\u7684\u811a\u672c\u8bed\u8a00\uff0c\u5b83\u662f Visual Basic \u8bed\u8a00\u7684\u5b50\u96c6\u3002\u8fd9\u6837\uff0c\u5728\u5b66\u4e60 Visual Basic \u4e2d\u5f97\u5230\u7684\u7ecf\u9a8c\u53ef\u5e94\u7528\u5230\u6240\u6709\u8fd9\u4e9b\u9886\u57df\u4e2d\u3002
\u4ece\u5f00\u53d1\u4e2a\u4eba\u4f7f\u7528\u6216\u5c0f\u7ec4\u4f7f\u7528\u7684\u5c0f\u5de5\u5177\uff0c\u5230\u5927\u578b\u4f01\u4e1a\u5e94\u7528\u7cfb\u7edf\uff0c\u751a\u81f3\u901a\u8fc7Internet \u7684\u904d\u53ca\u5168\u7403\u5206\u5e03\u5f0f\u5e94\u7528\u7a0b\u5e8f\uff0c\u90fd\u53ef\u5728 Visual Basic \u63d0\u4f9b\u7684\u5de5\u5177\u4e2d\u5404\u53d6\u6240\u9700\u3002
\u53c2\u8003\u8d44\u6599\uff1a\u767e\u5ea6\u767e\u79d1\uff1aVB
<循环变量>=<初赋值>
to
<终值>
[step
<步长>]
……
……
next
<循环变量>
在默认情况下,step被设为“1”,可以省略,step也可以设为负值,例如:
dim
a=0
for
i=1
to
10
a=a+i
next
i
这是一个最简单的累加器的例子,把1到10累加在一起,然后赋值给“a”这样的效果和上面是一样的,只不过是倒着加罢了,请看:
dim
a=0
for
i=10
to
1
step
–1
a=a+i
next
i
while语句也是一个很常用的循环语句,它的形式很多。
do
while
……
loop语句
while
……
wend
语句
do
……
loop
while
while后面都跟逻辑条件判断,“do
while
……
loop语句”和“while
……
wend
语句”作用相似,都是先判断while后面的条件是否为“真”,如果为“真”则执行里面的语句,如果为“假”,则退出循环,循环直至条件为“假”终止。“do
……
loop
while
”与前两者的区别在于,它不管条件的真假,都会先执行“do”后面的语句,也就是说,它至少执行语句一次。
与while用法相似的还有until语句,它是直至条件为真则终止循环,句式把while上述三个语句的while换成until即可,但是因为容易记混,所以我建议只用while即可。until
<条件>可以相当于while
not
<条件>。
for循环和whlie循环应当根据适当的环境使用,它们有时也可替换。
-------------------------------------------------------------
最好找点资料看看,像vb神童教程,新手还是很容易看懂的。希望对你有帮助。。。
在进入循环前,你定义的变量i,s有系统赋予的默认值,这个值对于byte,integer,long类型的变量来说是0.
循环的过程中两个变量值一次为1,2,3,这个就不用解释了。
那么循环是怎么跳出来的呢?是因为i不满足1 to 3这个条件了。
for i=1 to 3实际上等于for i=1 to 3 step 1
也就是循环一次i自增1,当i=3时,满足条件,执行s=s+1,然后i再step 1自增,所以i=4,这时循环条件不成立,跳出循环。
VB6里的问题?
很久没有用VB6了
反正我现在用的VB2008里没有wend和loop这种语句
又或者说是你看错了?因为你说你是菜鸟嘛呵呵
那么wend和loop的区别我就无法回答你了
因为wend和loop我根本就没见过
不过我简单说一下While吧
While是一个循环语句你是知道了的
你所说的wend和loop会不会是要判断的值呢?
比如,我只是说比如,一个假设啊
Dim
wend
as
Boolean
那么while
wend的意思就是针对这个量进行一个循环
那么while
wend的意思就是假如wend
=
True那么就一直执行下去
假如以下代码就是经过5次循环后结束的一个简单例子
Dim
a
As
Integer
=
1
Dim
wend
As
Boolean
=
True
While
wend
'如果wend=True时一直循环执行,如果wend=False时停止
a
=
a
+
1
If
a
=
5
Then
wend
=
False
'wend=False后那么下次循环经过While
wend时就停止
End
If
End
While
while
...
wend
主要目的是与以前的basic兼容,
可以放弃这种循环结构而使用
do
while
...
loop
/for
...
next/do
...
while
loop/for
each
in
...next
while
...
wend结构有一个显著的缺点,在循环体中没有专门用于跳出该循环的语句,只能使用goto进行跳出。
29+7
因为b只做临时存储(每次for循环都改变),
最后一次k=6时,b=23+6=29,for又再循环(k自加1)时,判断结果为k=7(即k>6),所以for不再循环(此时k已经是最后一次循环的6自加1
那么
b=29,k=6+1
msgbox
b+k =29+7=36
扩展阅读:vbs msgbox ... vba do while循环 ... vb while wend循环语句 ... vbs do loop循环语句 ... vbs脚本循环语句 ... vba while循环语句 ... vb循环语句do while ... vbs简单的循环恶搞 ... vb for循环语句 ...