5-5-2 便利な繰り返し処理を実際に動かしてみよう
until文を使ったプログラムを記述する
テキストエディタを開いて以下のプログラムを記述し、ファイル名をuntil.rb
として保存します。
# until文 a = 0 until(a > 10) do p a a += 1 end
until文を使ったプログラムを実行する
コマンドライン上でプログラムを指定して実行します。0
から10
までの数値が表示されます。
$ ruby until.rb 0 1 2 3 4 5 6 7 8 9 10
for文を使ったプログラムを記述する
テキストエディタを開いて以下のプログラムを記述し、ファイル名をfor.rb
として保存します。
# for文 for i in [1, 2, 3] do p i end
for文を使ったプログラムを実行する
コマンドライン上でプログラムを指定して実行します。1
から3
までの数値が順に表示されます。
$ ruby for.rb 1 2 3
upto
メソッドを使ったプログラムをirbで実行する
irb上で、upto
メソッドのブロック省略形を使った以下のプログラムを記述し実行します。1
から10
までの数値が順に表示されます。
irb(main):001:0> 1.upto(10) { |i| p i } 1 2 3 4 5 6 7 8 9 10 => 1
downto
メソッドを使ったプログラムをirbで実行する
irb上で、downto
メソッドのブロック省略形を使った以下のプログラムを記述し実行します。10
から1
までの数値が順に表示されます。
irb(main):001:0> 10.downto(1) { |i| p i } 10 9 8 7 6 5 4 3 2 1 => 10
step
メソッドを使ったプログラムをirbで実行する
irb上で、step
メソッドのブロック省略形を使った以下のプログラムを記述し実行します。1
から2
ずつ加算した数である奇数が9
まで順に表示されます。
irb(main):001:0> 1.step(10, 2) { |i| p i } 1 3 5 7 9 => 1
loop
メソッドを使ったプログラムをirbで実行する
irb上で、loop
メソッドのブロック省略形を使った以下のプログラムを記述し実行します。1秒おきに1
が表示され続けます。
実行しているプログラムは無限ループなので終了するためにCtrl+C
キーを押します。
irb(main):001:0> loop { p 1; sleep 1 } 1 1 1 ^CIRB::Abort: abort then interrupt! from (irb):1:in `sleep' from (irb):1:in `block in irb_binding' from (irb):1:in `loop' from (irb):1 from /Users/grami-sensei/.rbenv/versions/2.5.1/bin/irb:11:in `<main>'
map
メソッドを使ったプログラムをirbで実行する
irb上で、map
メソッドのブロック省略形を使った以下のプログラムを記述し実行します。元の配列の数値を2倍した数値の配列が表示されます。
irb(main):001:0> [1, 2, 3].map { |i| i * 2 } => [2, 4, 6]
any?
メソッドを使ったプログラムをirb上で実行する
irb上で、any?
メソッドを使った以下のプログラムを記述し実行します。元の配列にtrue
が1つあるので、結果にはtrue
が表示されます。
irb(main):001:0> [false, false, true].any? => true
any?
メソッドを使ったプログラムをirb上で再度実行する
irb上で、any?
メソッドを使った以下のプログラムを記述し実行します。元の配列がすべてfalse
でtrue
が1つもないので、結果にはfalse
が表示されます。
irb(main):002:0> [false, false, false].any? => false
select
メソッドを使ったプログラムをirb上で実行する
irb上で、select
メソッドのブロック省略形を使った以下のプログラムを記述し実行します。元の配列のうち2
で割り切れる数値の配列である[2, 4]
が表示されます。
irb(main):001:0> [1, 2, 3, 4].select { |i| i % 2 == 0 } => [2, 4]