Chcę uruchomić coś takiego:nieograniczony pętle
For a = 0 To 4
For b = a To 4
For c = b To 4
Console.WriteLine(a & b & c)
Next
Next
Next
Ale muszę utworzyć n pętle jednego siebie. Tak więc stworzyłem tę metodę:
'iFrom = 0; iTo = 4; Depth = 3(loop count);
Private Sub Iterate(ByVal iFrom As Integer, ByVal iTo As Integer, ByVal Depth As Integer)
For i = iFrom To iTo
If Depth - 1 > 0 Then Iterate(iFrom, iTo, Depth - 1)
'Do stuff here
Next
End Sub
Jaki byłby najlepszy sposób na odzyskanie wartości "i" z wyższych poziomów? Czy powinienem przechowywać je w tablicy? Czy istnieje zupełnie inny sposób podejścia do tego problemu?
Powinieneś przenieść 'If' poza pętlę, ponieważ' Depth' nie zmienia się z iteracji na iterację. Ta zmiana przeniesie Cię do standardowego układu funkcji rekursywnych, które opisałem w mojej odpowiedzi. – dasblinkenlight