.NET開発者のためのブログメディア
Rubyでのeachの繰り返し処理を紹介!eachの繰り返し処理を正しく使いこなそう!
- SE
- Rubyでの繰り返し処理とはどう言ったものでしょうか?
- PM
- ここではeachを使ったオブジェクトの処理についてみていきましょう。
目次
Rubyでのeachの繰り返し処理を紹介します!
今回は、Rubyでのeachを使った繰り返し処理について説明します。
Rubyでは、配列・範囲オブジェクト・ハッシュなどに対してeachで繰り返し処理ができます。
breakで繰り返し処理を抜けることができますし、nextで繰り返し処理をスキップすることができます。
eachの類似として、each_with_index・each_line・each_sliceの使い方についても紹介します。
Rubyでの繰り返し処理に興味のある方はぜひご覧ください。
配列
配列に対するeachの繰り返し処理を紹介します。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
|
# 配列の宣言
array = [ “item1”, “item2”, “item3”, “item4”, “item5” ]
# 繰り返し処理
array.each do |item|
puts item
end
|
実行結果は以下のようになります。
1
2
3
4
5
|
item1
item2
item3
item4
item5
|
このように、Rubyでは配列に対してeachで繰り返し処理ができます。
範囲オブジェクト
範囲オブジェクトに対するeachの繰り返し処理を紹介します。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
|
# 範囲オブジェクト
range = 1..5
# 繰り返し処理
range.each do |item|
puts item
end
|
実行結果は以下のようになります。
1
2
3
4
5
|
1
2
3
4
5
|
文字の範囲オブジェクトに対しても、同様です。
1
2
3
4
5
6
7
|
# 範囲オブジェクト
range = 'a'..'e'
# 繰り返し処理
range.each do |item|
puts item
end
|
実行結果は以下のようになります。
1
2
3
4
5
|
a
b
c
d
e
|
このように、Rubyでは範囲オブジェクトに対してeachで繰り返し処理ができます。
ハッシュ
ハッシュに対するeachの繰り返し処理を紹介します。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
|
# ハッシュ
color = {“red”:”あか”, “blue”:”あお”, “yellow”:”きいろ”}
# 繰り返し処理
color.each { |key, value|
puts “#{key} : #{value}”
}
|
実行結果は以下のようになります。
1
2
3
|
red : あか
blue : あお
yellow : きいろ
|
keyとvalueが表示されていることが分かります。
each_keyを使用すれば、keyだけを出力できます。
1
2
3
4
5
6
7
|
# ハッシュ
color = {“red”:”あか”, “blue”:”あお”, “yellow”:”きいろ”}
# 繰り返し処理(each_key)
color.each_key { |key|
puts “key : #{key}”
}
|
実行結果は以下のようになります。
1
2
3
|
key : red
key : blue
key : yellow
|
また、each_valueを使用すれば、keyだけを出力できます。
1
2
3
4
5
6
7
|
# ハッシュ
color = {“red”:”あか”, “blue”:”あお”, “yellow”:”きいろ”}
# 繰り返し処理(each_value)
color.each_value { |value|
puts “value : #{value}”
}
|
実行結果は以下のようになります。
1
2
3
|
value : あか
value : あお
value : きいろ
|
このように、Rubyではハッシュに対してeachで繰り返し処理ができます。
each_keyはkeyだけ、each_valueはvalueだけの繰り返し処理ができます。
break
Rubyでは、breakで繰り返し処理を抜けることができます。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
|
# 配列の宣言
array = [ “item1”, “item2”, “item3”, “item4”, “item5” ]
# 繰り返し処理
array.each do |item|
if item == “item3”
# 繰り返し処理を抜ける
break
else
puts item
end
end
|
実行結果は以下のようになります。
1
2
|
item1
item2
|
このように、Rubyではbreakで繰り返し処理を抜けることができます。
next
Rubyでは、nextで繰り返し処理をスキップすることができます。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
8
9
10
11
12
|
# 配列の宣言
array = [ “item1”, “item2”, “item3”, “item4”, “item5” ]
# 繰り返し処理
array.each do |item|
if item == “item3”
# スキップする
next
else
puts item
end
end
|
実行結果は以下のようになります。
1
2
3
4
|
item1
item2
item4
item5
|
このように、Rubyではnextで繰り返し処理をスキップすることができます。
each_with_index
each_with_indexを使えば、繰り返し処理でインデックスを出力できます。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
|
# 配列の宣言
array = [ “item1”, “item2”, “item3”, “item4”, “item5” ]
# 繰り返し処理
array.each_with_index do |item, i|
puts “index[#{i}] : #{item} “
end
|
実行結果は以下のようになります。
1
2
3
4
5
|
index[0] : item1
index[1] : item2
index[2] : item3
index[3] : item4
index[4] : item5
|
インデックスが出力されていることが分かります。
インデックスの開始値を変更したい場合は、each.with_indexを使用します。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
|
# 配列の宣言
array = [ “item1”, “item2”, “item3”, “item4”, “item5” ]
# 繰り返し処理
array.each.with_index(10) do |item, i|
puts “index[#{i}] : #{item} “
end
|
実行結果は以下のようになります。
1
2
3
4
5
|
index[10] : item1
index[11] : item2
index[12] : item3
index[13] : item4
index[14] : item5
|
この場合は、インデックス10から始まっています。
このように、Rubyではeach_with_indexを使えば、繰り返し処理でインデックスを出力できます。
each_line
each_lineを使えば、ファイルを1行ずつ読み込むことができます。
以下のようなファイルを読み込んで出力してみます。
1
2
3
|
aaa
bbb
ccc
|
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
|
# ファイルオープン
File.open('test.txt') do |file|
# 1行ずつ読み込み
file.each_line do |line|
puts line
end
end
|
実行結果は以下のようになります。
1
2
3
|
aaa
bbb
ccc
|
ファイルの内容が出力されていることが分かります。foreachでも同じことができます。
1
2
3
4
5
|
# ファイルオープン
File.foreach('test.txt') do |line|
# 1行ずつ出力
puts line
end
|
実行結果は以下のようになります。
1
2
3
|
aaa
bbb
ccc
|
このように、Rubyではeach_line・foreachを使えば、ファイルを1行ずつ読み込むことができます。
each_slice
each_sliceを使えば、配列を指定数で分割できます。
実際のソースコードを見てみましょう。
1
2
3
4
5
6
7
|
# 範囲オブジェクト
range = 1..20
# 繰り返し処理
range.each_slice(5){|arr|
puts arr.join(“ “)
}
|
実行結果は以下のようになります。
1
2
3
4
|
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
|
このように、Rubyではeach_sliceを使えば、配列を指定数で分割できます。
- SE
- 範囲オブジェクトを利用して順番に処理することも可能ですね。
- PM
- 状況によってはfor文を利用するよりもわかりやすいかもしれませんね。
まとめ
いかがでしたでしょうか。Rubyでのeachを使った繰り返し処理について説明しました。
Rubyでは、配列・範囲オブジェクト・ハッシュなどに対してeachで繰り返し処理ができます。
breakで繰り返し処理を抜けることができますし、nextで繰り返し処理をスキップすることができます。
eachの類似として、each_with_index・each_line・each_sliceの使い方についても紹介しました。
ぜひご自身でソースコードを書いて、理解を深めてください。
Search キーワード検索
Popular 人気の記事
-
.NET Framework 3.5をWindows10にインストールする方法
2019年10月24日 -
【VB.NET入門】DataGridViewの使い方まとめ
2019年12月22日 -
VB.NETとは?特徴や他言語と比べておすすめできる理由も解説!
2019年12月21日 -
EdgeとChromeはどう違う?それぞれのスペック7つを比較解説!
2020年09月28日 -
【VB.NET入門】学ぶメリット・知識ゼロから始める手順全まとめ!
2019年12月21日
reccomended おすすめ記事
-
C#のusingステートメントでリソースの解放【Disposeとの違いとは】
2020年03月17日 -
【SQL Serverログの操作】トランザクションログの使用量を確認する方法
2020年03月16日 -
【.NETが統合】.NET 5の概要と今後のリリース予定
2020年03月05日