箱のプログラミング日記。

渋谷の自社開発企業でRails書いてます。

Rubyの繰り返し処理いろいろ

f:id:y_hakoiri:20191102121704j:plain

繰り返しといえばwhile文かたまにfor文という感じたったのだけど

調べたら他にも便利な繰り返し処理がいくつかあって、

用途によって使い分ける必要があるなぁと感じたので使ってみました。

 

今回使ったのはupto

- 0.upto(10) do |i|

(hamlで書いてます)

iが決められた数になるまで処理を繰り返してくれる。

上の例では0から10までの間、iに1ずつ足しながら

処理中でiを使いつつ、同じ処理を繰り返すことができます。

 

- post.images.length.upto(5) do |i|

Railsでこんな使い方もできます

postに紐づいたimagesの数から5までの間、iを使った繰り返し処理が行えます

 

DBの値によってHTMLを変化させたい場合に使えます。

例えばpost.images.length==3(そのpostに紐づいたimagesが3枚)の場合だと

3~5の間繰り返される形になります。

 

よくwhile文を使って

i=0とか定義して、わざわざi ++みたいなことをよくやっていたので

数字を1ずつ足していく系の繰り返し処理はこっちの方が短く書けて断然良いなと思いました

 

ちなみに反対に1ずつ減らしていくdowntoという構文も。

 

以下に色々とまとまっていました

www.sejuku.net