我有一个for循环,我想永远增加。For loop ...永远
我的代码:
for a in (0...Float::INFINITY).step(2)
puts a
end
输出:
0.0
2.0
4.0
Etc. Always with "#{a}.0"
有没有什么方式来表达无穷大的整数,从而使输出不会有.0
在最后没有预成型的任何操作关于循环的内容?
附录
是否也能解释如何你的循环的作品?我试图找到最有效的解决方案,因为由于这个循环将迭代无穷大,几毫秒削减会大大提高性能。
也...
我会接受,花费时间最短运行至1000000
根据benchmark
都@Sefan和while
环答案采取相同的时间ammount的解决方案Fruity
while
循环答案需要更短一些,for
循环答案在第二位,但多个loop do
答案需要更长的时间。
由于之所以不在这个问题的范围之内,我创建了另一个问题来解释为什么一些循环比其他循环更快(https://stackoverflow.com/questions/33088764/peddle-to-the-metal-faster-loop-faster)。
“[S]因斯这个循环将是无穷迭代,几毫秒削减将大大提高性能“ - 我不明白这一点。无限的过程永远不会结束。每次迭代的性能差异不会有任何区别。 – sawa
@sawa这是我的代码的一个非常简化的版本,我试图检查每个数字,循环达到一定的特征,并且我希望循环尽可能快地检查数字。因此,如果每个被检查的号码花费的毫秒数少于1毫秒,它就会节省一秒钟,并且会检查数万亿的数字。 – thesecretmaster
@sawa它会在某个时候终止。没有循环会实际运行无穷大,因为对于所有意图和目的,任何无限循环都将被终止。 – thesecretmaster