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
以上が反復(ループ)処理の使い方になります。
コメント