【Ruby】5つの実例で学ぶ指定回数ループの作り方

初心者向けRubyループ制御解説記事 Ruby
この記事は約6分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればサンプルコードを活用して機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

初心者から上級者まで、プログラミング言語Rubyを使用するすべての方へ、こんにちは。

本記事では、「ループ」というキーワードに注目します。

この記事を読むことで、Rubyにおけるループ制御を理解し、実践的に活用する力が身につきます。

特に、「指定回数だけループを行いたい」というシチュエーションについて、実例を交えて詳しく説明します。

手を動かしながら学んでいただければ、さらに理解が深まることでしょう。

●Rubyとループの基本

ここでは、Rubyとループについて基本的な部分を確認します。

○Rubyとは

Rubyは、まつもとゆきひろ氏によって開発されたオブジェクト指向スクリプト言語です。

人間が自然に理解しやすいシンタックスが特徴で、初心者にも扱いやすい言語として広く認知されています。

○ループとは

ループとは、ある一連の処理を繰り返し実行することを指します。

例えば、配列の全ての要素に同じ操作を施すときや、特定の条件が満たされるまで同じ処理を繰り返すときなどにループが使われます。

●Rubyでのループ制御

Rubyでループを制御する方法にはいくつかありますが、その中でも代表的な「while文」と「timesメソッド」について見ていきましょう。

○while文

while文は、「ある条件が真である間、処理を繰り返す」というループ制御を行います。

□サンプルコード1:基本的なwhile文の使用例

i = 0
while i < 3
  puts "iの値は#{i}です。"
  i += 1
end

このコードでは、while文を使ってiの値が3より小さい間、「iの値は#{i}です。」と出力するループを作成しています。

iが3未満である限り、ループは続きますが、ループ内でiに1を加えることで、次第にiの値が増えていき、iが3になった時点でループから抜け出します。

このループを実行すると、次の結果が出力されます。

iの値は0です。
iの値は1です。
iの値は2です。

このように、while文を使用すると、条件が真である間だけループを実行し続けることが可能です。

□サンプルコード2:条件を満たすまでループする例

number = 0
while number < 100
  number += rand(1..10)
  puts "現在のnumberは#{number}です。"
end
puts "最終的なnumberは#{number}です。"

このコードでは、while文を使ってnumberの値が100未満の間、ループを実行します。

ループ内では、numberに1から10の乱数を加えて、その値を出力しています。

numberが100以上になったとき、ループは終了します。

このコードの実行結果は、乱数の値によって異なります。

現在のnumberは9です。
現在のnumberは17です。
...
最終的なnumberは104です。

このように、条件を満たすまで処理を続けることが、while文の特徴です。

○timesメソッド

Rubyでは、指定回数だけループを実行したい場合、timesメソッドが便利です。

このメソッドは、特定の整数の回数だけ繰り返し処理を行います。

□サンプルコード3:指定回数だけ繰り返す例

5.times do |i|
  puts "これは#{i + 1}回目のループです。"
end

上記のコードでは、timesメソッドを使って5回ループする例を示しています。

doからendまでのブロックが5回実行されます。

ブロック内の変数iは0から始まるため、出力メッセージに1を加えて1から始まるようにしています。

このコードを実行すると、次の結果が出力されます。

これは1回目のループです。
これは2回目のループです。
これは3回目のループです。
これは4回目のループです。
これは5回目のループです。

このように、timesメソッドは指定した回数だけ繰り返し処理を行うことができ、ループ回数の制御に非常に便利です。

●Rubyにおけるループ制御の応用例

以上で基本的なループの制御方法を見てきましたが、Rubyのループはこれだけではありません。

次に、応用的なループ制御の例を2つ紹介します。

○配列の要素を順に処理する

配列の各要素に対して同じ処理をしたい場合、eachメソッドを使用します。

これも一種のループと考えることができます。

□サンプルコード4:eachメソッドによるループ処理

array = ['apple', 'banana', 'cherry']
array.each do |item|
  puts "今日のフルーツは#{item}です。"
end

このコードでは、eachメソッドを使って配列arrayの各要素に対して、”今日のフルーツは#{item}です。”と出力するループを作成しています。

このループを実行すると、次の結果が出力されます。

今日のフルーツはappleです。
今日のフルーツはbananaです。
今日のフルーツはcherryです。

このように、eachメソッドは配列の各要素に対して一度ずつ処理を行うことができます。

配列の要素数がループの回数となります。

○指定回数だけ繰り返しながら値を更新する

ループの中で変数の値を更新しながら処理を行いたい場合もあります。

そのような場合も、Rubyのループ制御を使用します。

□サンプルコード5:timesメソッドとともに変数を更新する例

sum = 0
10.times do |i|
  sum += i
  puts "現在の合計値は#{sum}です。"
end

このコードでは、0から始まるsumという変数を用意し、10回のループ中でその値を更新しています。

各ループでsumにiの値を足し、その合計値を出力しています。

このコードを実行すると、次の結果が出力されます。

現在の合計値は0です。
現在の合計値は1です。
現在の合計値は3です。
現在の合計値は6です。
...
現在の合計値は45です。

このように、ループ中で変数の値を更新することで、複雑な処理も可能になります。

●ループ制御の注意点

Rubyでループ制御を行う際には、無限ループに注意する必要があります。

特にwhile文を使用する場合、条件式が常に真となりループが終了しない「無限ループ」になる可能性があります。

適切なループの終了条件を設定し、正しくループを制御することが重要です。

まとめ

この記事では、Rubyでのループ制御について詳しく解説しました。

ループ制御は、同じ操作を繰り返す際に非常に便利な機能です。

また、timesメソッドやeachメソッドなど、Ruby独自のメソッドも活用することで、より簡潔で分かりやすいコードを書くことが可能です。

ぜひ、この記事を参考に、Rubyでのループ制御をマスターしてください。