#6 Rubyで学ぶループの基本

Rubyのループは、読みやすさを重視したRubyらしい、複数の書き方が用意されています。この記事では、Rubyにおけるループの基本と、インデックス番号を使った処理まで解説します。

timesによる繰り返し

決まった回数を繰り返す場合、Rubyには`times`という独特で読みやすい書き方があります。

5.times do |i| puts i end

「5回」という意図がそのままコードに表れているのが、Rubyらしい特徴です。

eachで配列の中身を処理する

配列の中身を1つずつ処理したい場合は、`each`を使います。

fruits = ["りんご", "みかん", "ぶどう"] fruits.each do |fruit| puts fruit end

インデックス番号も一緒に使いたい場合は、`each_with_index`が便利です。

fruits.each_with_index do |fruit, index| puts "#{index}: #{fruit}" end

while文

count = 0 while count < 5 puts count count += 1 end

逆に「条件を満たさない間、繰り返す」という書き方をしたい場合は、`until`を使うとより自然に読めることがあります。

count = 0 until count >= 5 puts count count += 1 end

範囲(Range)を使ったループ

決まった範囲を繰り返したい場合は、`Range`オブジェクトの`each`もよく使われます。

(1..5).each do |i| puts i end

`1..5`は5を含み、`1...5`(ドット3つ)は5を含まない、という違いがある点はSwiftの範囲演算子とも似ています。

Rubyならではの注意点

`do |i| ... end`という書き方は「ブロック」と呼ばれる、Rubyの重要な機能です。最初は独特に見えますが、`times`や`each`のあとに「繰り返す処理そのもの」を渡している、と理解すると納得しやすくなります。ブロックは`{ }`(波かっこ)を使って1行で書くこともでき、`5.times { |i| puts i }`のように短く書く流儀もよく使われます。長い処理は`do ... end`、短い処理は`{ }`、という使い分けが一般的な慣習です。

まとめ

Rubyのループは`times`・`each`・`while`・`until`が基本で、インデックスが必要な場合は`each_with_index`が便利です。ブロックという考え方に慣れることが、Rubyらしいコードを書く近道になります。


本ページはプロモーションを含みます。

参考書籍(PR)

Rubyをもっと学びたい方には「プロを目指す人のためのRuby入門[改訂2版]」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本