反復処理(ループ)の手法【Ruby/for/while/until/times/upto/downto】

mycompilerでコード編集からコンパイル、実行まで行えます。

Rubyには様々な反復処理(ループ)の手法があります。

今回は主要な反復処理である『for』『while』『until』を詳しく解説し、その他のループ手法『times』『upto』『downto』についても簡単に紹介します。

反復処理『for』『while』『until』の使い方

まずはRubyでプログラミングを行う際に必ず覚えておきたい3つの反復手法『for』『while』『until』について解説します。

・for

forは定義した変数に値を入れることで、その回数だけ処理を繰り返します。

forの構文は以下になります。

#forの構文

for 変数 in 変数に入れる値
処理内容
end

『in』の後に『整数1..整数2』の形で範囲を記述すると、変数を1ずつ増やして下の処理を行います。

実際に例文を見てみましょう。

#forの例文

for i in 1..5
 puts i**2
end
#実行結果

1
4
9
16
25

よくあるミスとして『end』の書きが忘れがあるので、『end』までセットで覚えましょう。

・while

次にwhileです。

whileは定義した変数が条件を満たしている間だけ指定された処理を繰り返すコードです。

構文を見てみましょう。

#whileの構文

変数定義
while 変数範囲
処理内容
変数の加算処理
end

forでは指定した整数の中で変数が1ずつ増えるのに対し、whileでは変数の処理まで定義してあげる必要があります。

実際に例文を見てみましょう。

#whileの例文

i=2
while i<100
 puts i
 i**=2
end
#実行結果

2
4
16

上の例文ではこれがないと『i**=2』で変数の値を変更しています。

これがないと同じループを容量不足になるまで繰り返してしまうので注意が必要です。

・until

最後にuntilの使い方を学びましょう。

「whileが指定した条件の間処理を繰り返す」のに対して「untilは条件を満たすまで処理を繰り返す」といった違いがあります。

まずは構文を見てみましょう。

#untilの構文

変数定義
until 変数範囲
処理内容
変数の加算処理
end

では、whileの例文を一部変更してuntilの使い方を学びましょう。

#untilの例文

i=2
until i>100
 puts i
 i**=2
end
#実行結果

2
4
16

出力結果はwhileの例文と同じですが、whileでは変数『i』が100を下回る間(while i<100)を指定するのに対し、untilは『i』が100を超えるまで(until i>100)処理を繰り返します。

不等号の向きに注意しましょう。

その他の反復処理『times』『upto』『downto』

反復処理の手法には『times』『upto』『downto』といったコードもあります。

簡単に紹介します。

・times

timesでは指定した回数だけ処理を繰り返すことができます。

変数を定義しなくても使えるので非常にシンプルです。

#timesの構文

反復回数 .times do |変数定義があれば記述|
処理内容
end

変数を定義するときには必ず『||』で囲んであげます。

これを記述し忘れるとエラーとなるので注意しましょう。

#timesの例文

5.times do |num|
    puts num
    num+=1
end
#実行結果

0
1
2
3
4

・upto / downto

upto / downtoは開始と終了の数値を定義することで、指定された回数だけ処理内容を繰り返すコードです。

どちらも同じ書き方で使えます。

#upto/downtoの構文

開始の値 .upto/downto(終了の値) do |変数定義があれば記述|
処理内容
end
#upto/downtoの例文

puts "upto"
10.upto(14) do |i|
  puts i
end

puts "downto"
14.downto(10) do |i|
  puts i
end
#実行結果

upto
10
11
12
13
14
downto
14
13
12
11
10

以上が反復(ループ)処理の使い方になります。

コメント