Ruby
改訂3版基礎 Ruby on Rails (KS IMPRESS KISO SERIES)でどうしてもわからないことがあった。 untitled.rb class Robot def initialize(name) @name = name @x = @y = 0 end def move(x,y) @x += x; @y += y end def to_s "#{@name}: #{@x},#{@y}" end end ro…
模範解答はこちら
1から10までの和を取得するtotalメソッド。 もし、2で割り切れなければnextでブロックのその回の実行を中断している。 中断するのはその回だけなので、続きはそのまま実行される。 すなわち1から10までの偶数のみの和を返す。 next 0のように引数を与…
num = 4までの結果が返ってきそうだが、ブロックの中でbreakを呼ぶと、ブロックつき呼び出しの場所まで一気に戻ってくるので、totalメソッドの中の計算の結果を返す処理などがすべて飛ばされてしまう。
ブロック変数を使うと、ある範囲の引数に同じ処理を施せるんだな。 例は、1から10までの和 1から10までの2乗の値の和 を出力している。