首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无限的For循环

无限的For循环
EN

Stack Overflow用户
提问于 2012-06-20 19:04:07
回答 2查看 235关注 0票数 7

我想运行这样的东西:

代码语言:javascript
复制
For a = 0 To 4
   For b = a To 4
      For c = b To 4
        Console.WriteLine(a & b & c)
      Next
   Next
Next

但我需要一个接一个地创建n个循环。所以我创建了这个方法:

代码语言:javascript
复制
'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“值的最佳方式是什么?我应该将它们存储在数组中吗?或者有一种完全不同的方法来解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-20 19:59:42

在尝试了这个方法之后,我终于找到了解决方案。这就是它:

代码语言:javascript
复制
Private Sub Iterate(ByVal iFrom As Integer, ByVal iTo As Integer, ByVal Depth As Integer, ByVal iValues As Integer())
    For i = iFrom To iTo
        iValues(Depth - 1) = i
        If Depth - 1 > 0 Then
            Iterate(i, iTo, Depth - 1, iValues)
        Else                
            'Do stuff, in this case print the current iValues
            Console.WriteLine(String.Join("", iValues.Select(Function(x) x.ToString).ToArray))                
        End If
    Next
    Console.WriteLine()
End Sub

'Usage:
Dim iValueArray(Depth) As Integer
Iterate(0, 1, 2, iValueArray)
票数 0
EN

Stack Overflow用户

发布于 2012-06-20 19:12:34

您可以将一个数组或类似的结构作为参数添加到Iterate()中,对于每次调用Iterate(),您都会将i的当前值添加到该数组中。

因此,您可以知道循环的深度和“父”循环的当前值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11118177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档