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

for
<循环变量>=<初赋值>
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循环语句 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网