我最近发现了一个可怕的想法:Ruby中的Integer.count
循环从0
开始,并在玩Facebook工程益智游戏时转到n-1
。我做了一个肮脏的修复,在开头添加一个块变量,以便它从一个开始。
有更漂亮的方式吗?
示例:
10.times do |n|
n += 1
puts n
end #=> 012345789
答案 0 :(得分:88)
Ruby支持多种计数和循环方式:
1.upto(10) do |i|
puts i
end
>> 1.upto(10) do |i|
> puts i
| end #=> 1
1
2
3
4
5
6
7
8
9
10
还有step
代替upto
,它允许您按步长值递增:
>> 1.step(10,2) { |i| puts i } #=> 1
1
3
5
7
9
答案 1 :(得分:23)
答案 2 :(得分:8)
尝试
(1..10).each do |i|
# ... i goes from 1 to 10
end
代替。当i
的值很重要时,它也更容易阅读。
答案 3 :(得分:2)
当然有while
- 循环:
i = 1
while i<=10 do
print "#{i} "
i += 1
end
# Outputs: 1 2 3 4 5 6 7 8 9 10
答案 4 :(得分:2)
陈旧,但这可能是有人在寻找的东西..
5.times.with_index(100){|i, idx| p i, idx};nil
#=>
0
100
1
101
2
102
3
103
4
104