我有问题跳过执行时代码的某个特定部分。使用GoTo跳过代码(递归)
Dim turn as Integer = 1
Function recurs1()
If turn = 9 Then
GoTo Endline
End If
For i = 0 To 5
For j = 0 To 5
If (arr(i, j) <> 10 And arr(i, j) <> 20) Then
If chance Mod 2 = 1 Then
MsgBox("Intialized (" & i & "," & j & ") To 10") 'Line X
arr(i, j) = 10
ElseIf chance Mod 2 = 0 Then
MsgBox("Intialized (" & i & "," & j & ") To 20") 'Line Y
arr(i, j) = 20
End If
turn += 1 'Updating turn
recurs1() 'Recursion takes place here
End If
Next
Next
Endline:
Return Nothing
End Function
根据我的理解,代码应该在turn的值为9之后停止赋值给数组,并且应该返回流到调用函数/ sub。但是,它会继续分配值,并根据转弯的值打印行X或行Y.
如果允许的话,反过来增量高达37
值我会欣赏一些帮助,从别人的代码比我更深入的了解这个问题。
非常感谢。
为什么使用SQL注释语法? – 2014-08-30 10:44:36
错误,只是为了让它更明显,它是一个评论。不过,我只把它放在这里。不在父代码中。 – Jackdaw 2014-08-30 10:47:48
我讨厌'Go To',并且你的代码不会停在'turn = 9'处。只有在调用函数'recurs1()' – bansi 2014-08-30 10:48:01