私は最近、Integer.count
Ruby start from 0
とn-1
Facebookエンジニアリングのパズルゲームで遊んでいます。最初にブロック変数に1を追加して、代わりに1から開始するという汚い修正を行いました。
もっときれいな方法はありますか?
例:
10.times do |n|
n += 1
puts n
end #=> 012345789
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..10).each do |i|
# ... i goes from 1 to 10
end
代わりに。 i
の値が重要な場合も読みやすくなります。
もちろんwhile
- loopがあります:
i = 1
while i<=10 do
print "#{i} "
i += 1
end
# Outputs: 1 2 3 4 5 6 7 8 9 10
古いですが、これは誰かが探しているものかもしれません。
5.times.with_index(100){|i, idx| p i, idx};nil
#=>
0
100
1
101
2
102
3
103
4
104