0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Ruby 繰り返し処理とは?

Last updated at Posted at 2021-05-19

繰り返し処理を行う「while文」「for文」、要素を順に取り出す「eachメソッド」について解説します。

while文

 一定の条件を満たしている時、指定した処理を繰り返し行うことができる。記入方法は以下の内容です。

while 条件を記入 do
  処理内容  # 条件がtrueの間処理を繰り返す
end
number = 1

while number <=3 do
 number += 1
end

【結果】
1
2
3

【詳細】
1.number = 1と定義する
2.number が3になると終了するような条件式
3.number を画面に出力させる
4.number に1ずつ足していく
5.繰り返しを終了させるend

【その他】
条件を設定するときに!=とすることで一致しないときは、など設定も可能。

for文

 whileと異なり順番に値を表示してくれるものが、for文です。
for ~ in ~ do を記述することで、endまでの処理を繰り返し実行。

for 変数 in 範囲、ハッシュ、配列などを指定 do
  処理
end
for number in 1..5 do
 puts number
end

【結果】
1
2
3
4
5
【詳細】
1..5とすることで1~5までの範囲を示す。

eachメソッド

指定したデータから「eachメソッド」で、オブジェクト内の要素を順に取り出す。
||で囲ったものがブロック変数になります。「do~end」までの範囲がブロック。

<% @books.each do |book| %>
members.rb
members = {"taro"=>1, "jiro"=>2, "ace"=>3}
members.each do |name, id|  
puts "#{name}は#{id}番です。"
end

【結果】
taroは1番です。
jiroは2番です。
aceは3番です。

【詳細】
ハッシュタグの内容を順にキーをname、値をidに代入して繰り返す。

実例
投稿のタイトルや感想の一覧を掲載するときに使用したものです。

<table>
  <thead>
    <tr>
      <th>タイトル</th>
      <th>感想</th>
      <th></th>
      <th colspan="3"></th>
    </tr>
  </thead>

  <tbody>
    <% @books.each do |book| %>
      <tr>
        <td><%= book.title %></td>
        <td><%= book.body %></td>
        <td><%= link_to 'show', book %></td>
        <td><%= link_to 'edit', edit_book_path(book) %></td>
        <td><%= link_to 'destroy', book, method: :delete, data: { confirm: 'Are you sure?' } %></td>
      </tr>
    <% end %>
  </tbody>
</table>

【解説】|book|という変数を立てて@booksに保存されているデータを表示しようというものです。データの中でも欲しいもの、title・bodyなどを表示するためbook.〇〇という形で記述。

【ワンポイント】
・edit_book_path(book) という記述がある。これはbookという記事1つずつに対してLinkを設定することができる。'edit'という文字リンクを作成しそれによって遷移できることを示している。

・data: { confirm: 'Are you sure?' } これによって削除の時に一度エラー分を発生させることができるようになる。

まとめ

 繰り返し処理というものはRubyではよく使われている。ユーザーの情報や投稿記事の一覧などにも用いられるため必ずと言っていいほど使用しているため大切なところだ。
 繰り返しの方法が様々あるためこれを確認して用途に合った繰り返しを行う必要がある。
 

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?