Private Sub Command1_Click()
Dim a(5) As Integer
For i = 0 To 4
a(i) = i + 1
t = i + 1
If t = 3 Then
Print a(i);
a(t - 1) = a(i - 2)
Else
a(t) = a(i)
End If
If i = 3 Then a(i + 1) = a(t - 4)
a(4) = 1
Print a(i);
Next i
End Sub
结果为什么是 1 2 3 1
4 1?
你要注意,a(4)=1这一句话是跑不掉的,无论如何,每次循环,a(4)=1一定要执行。
i=0时:
a(0)=0+1=1
t=0+1=1
t=3为假,执行Else部分
a(1)=a(0)=1
i=3为假
直接执行a(4)=1
打印 a(0),即打印 1
i=1时:
a(1)=1+1=2
t=1+1=2
t=3为假,执行Else部分
a(2)=a(1)=2
i=3为假
直接执行a(4)=1
打印 a(1),即打印 2
i=2时:
a(2)=2+1=3
t=2+1=3
t=3为真,执行Then部分
打印 a(2),即打印 3
a(3-1)=a(2-2),即 a(2)=a(0)=1
i=3为假
直接执行a(4)=1
打印 a(2),即打印 1
i=3时:
a(3)=3+1=4
t=3+1=4
t=3为假,执行Else部分
a(4)=a(3)=4
i=3为真,执行 a(i + 1) = a(t - 4),即a(4)=a(0)=1
再执行a(4)=1
打印 a(3),即打印 4
i=4时:
a(4)=4+1=5
t=4+1=5
t=3为假,执行Else部分
a(5)=a(4)=5
i=3为假
直接执行a(4)=1,把之前a(4)的值覆盖了
打印 a(4),即打印 1
所以,打印的结果是: 1 2 3 1 4 1