解释如下程序

来源:百度知道 编辑:UC知道 时间:2024/06/21 07:33:01
Option Explicit

Private Sub Command1_Click()
Dim A(3, 3) As Integer, I As Integer, J As Integer, K As Integer
I = 3: J = 1
A(I, J) = 1
For K = 2 To 9
If I + 3 > 3 Or J + 1 > 3 Then
If J = 1 Then
I = I - 1
ElseIf A(I - 1, J - 1) = 0 Then

I = I - 1: J = J - 1
ElseIf J = 3 Then
I = I - 1
Else
J = J + 1
End If
ElseIf J = 1 Or I = 1 Then
If A(I + 1, J + 1) = 0 Then
I = I + 1: J = J + 1
Else
J = J + 1
End If
Else
If A(I - 1, J - 1) = 0 Then
I = I - 1: J = J - 1
End If
End If
A(I, J) = K
Next K
End Sub

这个没有什么好解释的,搞得蛮复杂,就是对A初始化
但是我认为存在逻辑错误,默认情况下数组下标从0开始,I = 3: J = 1
A(I, J) = 1下标越界
如果使用Option Base重新定义数组下界,在第3趟循环时
A(I, J) = K下标越界