vb的for 循环问题

来源:百度知道 编辑:UC知道 时间:2024/06/24 11:14:11
Private Sub Command1_Click()
a = 0
For i = 1 To 2
For j = 1 To 4
If j Mod 2 <> 0 Then a = a + 1
a = a + 1
Next j
Next i
Print a
End Sub
帮我看看这个代码中的A为什么等于12
我的理解是
i=1
j=1,2,3,4
i=2
j=1,2,3,4

If j Mod 2 <> 0 Then a = a + 1
a = a + 1
J被2取模不等于0的 A+1+1
那J只有1和3是符合条件的 J只有2组1和3(4个数符合条件)那就是(a+1+1)*4 以我的理解是等于8的为什么会等于12呢?

你看仔细,第二个a=a+1是每次都能加的

当然是等于12了。
当i=1,j=1时a自加了两边也就说a=2
当i=1,j=2时a自加了一边,if判断后没有执行,而是执行了下面的a=a+1及a已经等于3了。
当i=1,j=3或j=4时情况和j=1和j=2一样,所以a=6
当i=2时又重复了上面的情况,所以a=12
给我加分啊。

改成这样就可以了:
Private Sub Command1_Click()
a = 0
For i = 1 To 2
For j = 1 To 4
If j Mod 2 <> 0 Then
a = a + 1
a = a + 1
End If
Next j
Next i
Print a
End Sub
你的写法,if块只管它那一行,如果你要两行都管的话,就要在then后换行,并且在后面加上End If来结束。