Я хочу, чтобы запустить что-то вроде этого:Неограниченный Для петель
For a = 0 To 4
For b = a To 4
For c = b To 4
Console.WriteLine(a & b & c)
Next
Next
Next
Но мне нужно, чтобы создать п петель один друг друга. Поэтому я создал этот метод:
'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
Что было бы лучшим способом получить значения «i» с более высоких уровней? Должен ли я хранить их в массиве? Или есть совершенно другой способ подойти к этой проблеме?
Вы должны переместить 'If' вне цикла, потому что' Depth' не изменяется с итерации на итерацию. Это изменение приведет вас к стандартной компоновке рекурсивных функций, которые я описал в своем ответе. – dasblinkenlight