gpt4 book ai didi

ruby - 评估 Ruby while 循环底部的退出条件

转载 作者:太空宇宙 更新时间:2023-11-03 17:36:47 24 4
gpt4 key购买 nike

我有一个关于 Ruby 循环的非常基本的问题。

该程序如所写返回第 i 个质数 +1(即该示例应返回 17)。我知道我可以简单地返回 cand-1,但我想知道检查是否在 while 循环底部找到答案的“Ruby 方式”是什么只有在没有增加的情况下才会增加。

def ith_prime(i)
pI = 0 # primes index
divs = []
cand = 2

until pI == i do
if divs.find { |div| cand%div == 0 } == nil
divs << cand
pI += 1
end
cand += 1
end
cand
end

puts ith_prime(7)
> 18

最佳答案

大多数时候,我使用loop 而不是whileuntil。这样我就可以将退出条件放在循环中的任何位置。

我会这样写(如果我理解正确的话):

def ith_prime(i)
pI = 0 # primes index
divs = []
cand = 2

loop do
unless divs.find { |div| cand%div == 0 }
divs << cand
pI += 1
end

break if pI == i

cand += 1
end

cand
end

关于ruby - 评估 Ruby while 循环底部的退出条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14202487/

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