ループ処理とは
プログラミング言語におけるループとは、ある条件下で命令や関数を繰り返し実行することで、その結果をクリアにする機能です。
Rubyでは、プログラマーの作業を容易にするために、プログラム中の条件に基づく状況を処理するためのさまざまなタイプのループが用意されています。
以下でいくつか紹介します。
while
ループの最初にテストする条件を与え、与えられたブール値の条件を満たすと処理を実行し続けます。
条件が偽になると、whileループから制御が外れます。
このように、基本的にwhileループは、プログラムの反復回数が一定でない場合に使用されます。
while 条件 [do]
処理
end
*whileループの条件分岐は、予約語のdo、改行、バックスラッシュ( \ )、セミコロン(;)で区切られます。
n = 1
while n <= 5
puts "5以下"
n = n + 1
end
# 5以下
# 5以下
# 5以下
# 5以下
# 5以下
for
forループは、whileループと似たような機能を持ちますが、構文が異なります。
forは、特定の数値範囲を繰り返し処理します。
for 変数 in オブジェクト do
処理
end
*オブジェクトには、範囲オブジェクトや配列、ハッシュなどが該当します。
範囲オブジェクトの例
for text in 1..3 do
puts "chiba lotte"
end
# chiba lotte
# chiba lotte
# chiba lotte
*「..」は最後の数字も含むので、3回実行されています。範囲オブジェクトについてこちら↓
配列の例
arr = ["ogino", "fujiwara", "nakamura"]
for n in arr do
puts n
end
# ogino
# fujiwara
# nakamura
do..while
do whileループはwhileループと似ていますが、唯一異なる点は、処理を実行した後に条件をチェックすること、つまり、ループ本体を確実に1回だけ実行することです。
条件に当てはまれば、そこで制御から外れます。
ただしRubyにはdo..whileという書き方はできないので、以下のようにbreak ifを使います。
loop do
処理
break if 条件
end
*ここで、条件は、比較演算子(>, =, <=, !=, ==)を使用して作成された真または偽のいずれかの出力になります。また、括弧の中で複数の論理式を使用することができ、それらは論理演算子(&&, ||, !)によって接続されます。
loop do
puts "chiba lotte"
num = '6'
break if num == '6'
end
# chiba lotte
until
Rubyのuntilループは、与えられた条件が偽に評価される間は処理を実行し続けます。
基本的には、与えられた条件が偽になるまで実行される while ループとは逆で、与えられた条件が真になるまで実行されます。
until 条件 do
処理
end
*until 文の条件文は、予約語の do や改行、セミコロン(;)でコードと区切られます。
num = 3
until num == 7 do
puts "nは7未満"
num = num + 1
end
# nは7未満
# nは7未満
# nは7未満
# nは7未満