Posted at

【Ruby】Ruby入門:繰り返し処理

More than 3 years have passed since last update.


やること

繰り返しの処理を理解する


記録

繰り返し処理はループ処理とも言います。

timesメソッド、while文、for文とeachメソッドを見てみます。


timesメソッド

単純に何回か繰り返し処理を行いたいという場合は、数値オブジェクトに.timesをつけるとその回数分繰り返します。例で見てみます。


hello.rb

3.times do

puts "hello"
end

実行結果

hello

hello
hello

実行結果にその回数が何回目かを表示するやり方もあります。それはdoのあとに|i|をつけるとできます。例で見てみます。


hello.rb

3.times do |i|

puts "#{i}: hello"
end

実行結果

0: hello

1: hello
2: hello

となります。timesを使うと必ず0から始まります。ここ注意ですね。


while文

while文は次の条件が真の間は次の処理をしなさいというものです。これも例で見てみます。


hello.rb

i = 0

while i < 3 do
puts "#{i}: hello"
i = i + 1 # 自己代入 i += 1 も可
end

実行結果

0: hello

1: hello
2: hello


for文

for文で繰り返し処理をしたい場合は次のように書きます。


hello.rb

for i in 0..2 do # 0から2までの範囲の数値を作る

puts i # それらを1つずつiに入れる
end

実行結果

0

1
2

0..2には配列やハッシュを使うこともできます。例えば、


hello.rb

for color in ["red", "blue", "pink"] do

puts color
end

実行結果

red

blue
pink

となります。


eachメソッド

配列やハッシュの場合、for文よりもeachメソッドを使うことも多いようです。どう使うかというと、


hello.rb

["red", "blue", "pink"].each do |color|

puts color
end

実行結果

red

blue
pink


hello.rb

{"red"=>200, "blue"=>100, "pink"=>50}.each do |color, price|

puts "#{color}: #{price}"
end

実行結果

red: 200

blue: 100
pink: 50

配列やハッシュもこのように使えます。


ループから抜ける

ループから抜けるための命令としてbreaknextがあります。breakはループを抜ける、nextはループを1回スキップすることができます。例で見てみます。


hello.rb

3.times do |i|

if i == 1 #iが1のときに
break # ループから抜ける
end
puts "#{i}: hello"
end

実行結果

0: hello

i0のときにループから抜けるので、1以降の処理がされていません。nextではどうなるかというと、


hello.rb

3.times do |i|

if i == 1 #iが1のときに
next # ループを1回スキップする
end
puts "#{i}: hello"
end

実行結果

0: hello

2: hello


感想

よくわからなくなってきた(^_^;)

演習問題解こう。