作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我想根据变量中的值将尽可能多的 for
循环放在它们自己中。
例如,如果变量@var = 1
,我需要执行:
for letter1 in @range
do something
end
如果变量@var = 2
:
for letter1 in @range
for letter2 in @range
do something
end
end
如果变量@var = 3
for letter1 in @range
for letter2 in @range
for letter3 in @range
do something
end
end
end
是否有比下面这段代码更智能/代码更少的方法?我不想再重复一遍。
if @var == 1
for letter2 in @range
do something
end
elsif @var == 2
for letter1 in @range
for letter2 in @range
do something
end
end
elsif @var == 3
for letter1 in @range
for letter2 in @range
for letter3 in @range
do something
end
end
end
end
do something
部分在每种情况下始终相同。区别仅在于它的周期数。
最佳答案
你应该阅读递归:http://en.wikipedia.org/wiki/Recursion_(computer_science)
它是这样的:
def f(depth,letters=[])
if depth == 0
do someting with letters
else
for letter in @range
f(depth-1,letters+[letter])
end
end
end
f(@var)
f
是一个函数,它通过 letter 递归地再次调用自己。每个调用都有信息 depth
,这意味着递归应该多深。
关于ruby - 许多嵌套的 `for` 循环取决于变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4793090/
我是一名优秀的程序员,十分优秀!