gpt4 book ai didi

ruby - 许多嵌套的 `for` 循环取决于变量

转载 作者:数据小太阳 更新时间:2023-10-29 08:41:17 26 4
gpt4 key购买 nike

我想根据变量中的值将尽可能多的 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com