我有問題跳過執行時代碼的某個特定部分。使用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