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?メソッドを使った以下のプログラムを記述し実行します。元の配列がすべてfalsetrueが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]