Rubyのfor文(繰り返し構文)を使いこなす
同じ処理や似たような処理を何度も行うとき、同じようなプログラムを延々と書くことはあまり良いコードとは言えません。プログラミングにおける必須技術のうちのひとつ、【for文(ループ・繰り返し構文)】のRubyでの使い方について、今回は解説していきます。
for文(ループ・繰り返し構文)とは
プログラムにおいて、【ある値に1を足し続ける】【配列の全ての要素を取り出して変数に渡し続ける】等、似たような(あるいは全く変わらない)処理を何度も繰り返す場面はとてもありふれたものです。
こういった場合、必要な回数に到達するまで延々と同じコードを書き続けることは、冗長かつプログラムの可読性を下げるという点で避けるべき行為です。
こういった似たような処理を繰り返すための構文として、大半のプログラミング言語には【for文】という繰り返し同じ処理を行うための構文が存在しています。
プログラミング言語全般におけるfor文(ループ・繰り返し構文)
for文はほとんどのプログラミング言語に備わる繰り返し構文のひとつです。指定した条件を満たす間は、for文内に記述したコードを繰り返し続けます。繰り返し構文には他にも【while】などが存在しており、こちらについてもほとんどのプログラミング言語で用意されている構文です。
ほとんどのプログラミング言語で用意されているfor文ですが、その書き方についても、ある程度の差がありはするものの、基本的には類似したものである場合がほとんどです。
Rubyにおけるfor文
Rubyはプログラミング言語として【比較的短く書ける】ということが特徴です。様々な処理を簡潔に書くことができるRubyですが、Rubyにおけるfor文についても、それは例外ではありません。Rubyのfor文もまた、様々なプログラミング言語のfor文と見比べたとき、比較的短く書けることが特徴となっています。
for文の使い方
Rubyでのfor文の最も基本的な使い方は次のとおりです。
for i in 0..9 do # 変数i に0から9までの数字を一つひとつ入れていく
puts i # 1週目 → 0出力, 2週目 → 1出力, 3週目 → 2出力, ...
end
このコードの【in 0..9】としてある箇所で、繰り返し処理の回数が決まっています。
in のあとに続く値の数字や配列等の【データのかたまり】を、【1つひとつ取り出して for のあとに続く変数へ代入し、do以降の処理を繰り返し実行する】のが、Rubyのfor文の仕様です。
inのあとに続くデータのかたまりが配列である場合、次のようなコードになります。
for i in [“tokyo”, “yamanashi”, “kyoto”] do # 変数i に配列の要素を一つひとつ代入していく
puts i # 1週目 → “tokyo”出力, 2週目 → “yamanashi”出力, 3週目 → “kyoto”出力
end
nextで次の繰り返し処理へ移動させる
多くのプログラミング言語で実装されている【繰り返し構文】にはほとんどの場合【ループから脱出するための構文】が用意されています。
Rubyにもループ脱出用のメソッドが2つ用意されており、そのうちの一つが【next】です。nextを使うことで、ループを強制的に1周分スキップすることが出来ます。
for i in 0..9 do
if i <= 3
next # 変数iが3以下の場合、次のループへスキップする
end
puts i # 3週目までスキップ, 4週目 → 3, 5週目 → 4, 6週目 → 5, ...
end
上記コードでは if文で指定した条件の場合、【next】で現在のループを破棄して次のループへとスキップするよう記述されています。
breakで繰り返し処理を脱出する
Rubyに用意されている【ループから脱出するための構文】のもう1つは、【break】です。【break】は、次のループへスキップする【next】とは異なり、ループそのものから一息に脱出します。ループそのものを終了させたい場合に有効です。
コードは以下のように記述します。
for i in 0..9 do
if i > 2
break # 変数iが2より大きい場合、ループを脱出する
end
puts i # 1週目 → 0, 2週目 → 1 ...3週目になった時点でループを脱出するため、出力は1週目、2週目のみ
end
上記コードでは、if文で指定した条件の場合、【break】でループそのものから脱出するよう記述されています。
まとめ
for文を使えばコードを簡潔にすることが出来ます。また、for文等のループ・繰り返し構文から脱出するための構文【next】や【break】を用いることで、条件に応じた繰り返し処理のループ回数等、細かな調整を行うことが出来ます。
Rubyの繰り返し構文をマスターし、可読性の高い再帰的なコードを書けるようにしていきましょう。
この記事のキーワードに関する勉強会・イベントを探す
TECH PLAYでは、ITエンジニア向けの勉強会・イベント情報を提供しています。興味のある方はぜひご参加ください。