Bonkura - Kenny

SIerで働く文系SEの記録

【たのしいRuby_6】繰り返し

たのしいRubyの第6章を学んだ。

たのしいRuby 第4版

たのしいRuby 第4版

繰り返しの実現方法は「構文」「メソッド」の2パターンがある。

timesメソッド

一定の回数だけ同じ処理をさせる

10.times do [|i|]
 puts "文字"
end
#|i|には繰り返している数が入る。最初は0。

for文

timesメソッドと違って、開始時の値や終了時の値を自由に変更可能

for 変数 in 開始時..終了時 do
 繰り返す処理
end
# doは省略可能

「..」は範囲オブジェクトを作る記号、なので本当は。。。

for 変数 in オブジェクト do
 繰り返す処理
end

配列をオブジェクトとして使ったり。。。その時は配列の要素を一つづつ取り出して、何らかの処理を行う。

while文

条件が成り立っている間、繰り返す。

while i < 3 do
 繰り返したい処理
 i += 1
end
#doは省略可能

until文

while文の逆。条件が成り立っていない間、繰り返す。

while i >= 3 do
 繰り返したい処理
 i += 1
end
#doは省略可能

eachメソッオブジェクトの集まりに対して、それを1つずつ取り出す時に使う。

オブジェクト(配列).each do |変数|
 繰り返したい処理
end
names = ["Honda","Kagawa","Okazaki"]
names.each do |name|
  puts "I am #{name}"
end

loopメソッド

終了条件のない繰り返し

#無限ループする
loop do
 print "Ruby"
end

繰り返しの制御

  • break:繰り返しを中断
  • next:次の繰り返し処理に移す
  • redo:同じ条件で繰り返しをやり直す

ブロックの書き方~do-endと{}

  • do-end:複数行に渡る場合
  • {}:1行にまとめる場合