退出循环

时间:2014-07-06 01:20:47

标签: ruby fibonacci

我的for循环产生Fibonacci序列。我希望我的for循环在到达4000000之后的任何内容时停止。这就是我所拥有的:

    x = [1,2]
    for i in 0..40
        y = x[i+1] + x[i]
        x.push(y)
        break if y > 4000000
    end 

返回以下内容

  

[1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368, 75025,121393,196418,317811,514229,832040,1346269,2178309,3524578,5702887]

我不想要我的数组中的最后一项。无论如何要比从数组中删除最后一项更简单吗?另外,我的代码有什么低效或混乱的东西吗?

1 个答案:

答案 0 :(得分:0)

最后插入元素,这将确保插入的元素在

范围内
x = [1,2]
for i in 0..40
   y = x[i+1] + x[i]
   break if (y > 4000000)
   x.push(y)
end
p x