Rubyのfor文で処理を繰り返すサンプルです。
目次
サンプル | for文 |
ループ処理を途中で終了する(break) | |
2重ループ(入れ子)のときにbreakを使用する | |
ループ処理で処理をスキップする(next) | |
2重ループ(入れ子)のときにnextを使用する |
for文
for 変数 in 開始値...終了値 実行される処理 end |
for 変数 in オブジェクト 実行される処理 end |
- 処理を繰り返す時に使用します。最初にforを書くのでfor文と呼ばれます。
- 変数が開始値から終了値までまたはオブジェクトの要素分繰り返します。
for文のサンプルです。
for i in 1..3
puts i # 1 2 3が出力される
end
color = ["赤", "黄", "青"]
for c1 in color
puts c1 # 赤 黄 青が出力される
end
for i in 0..color.length - 1
puts color[i] # 赤 黄 青が出力される
end
1行目は、1から3までの処理を繰り返します。
変数のiはカウンター変数またはループ変数と呼ばれます。
5行目は、配列です。
7行目は、配列の全ての要素にアクセスします。
11行目は、配列の要素数-1でループさせています。
ループ処理を途中で終了する(break)
break |
for文でbreakを使用するとループ処理から抜けます。
for i in 1..3
if i == 2
break
end
puts i # 1が出力される
end
3行目のbreakでfor文を抜けます。1のみ出力されます。
2重ループ(入れ子)のときにbreakを使用する
for i in 1..2
for j in 1..2
if j == 1
break
end
puts "j=" + j.to_s # 出力なし
end
puts "i=" + i.to_s # i=1 i=2が出力される
end
1,2行目にfor文があり2重ループ(入れ子)になっています。
4行目のbreakは、内側のfor文のみ抜けます。
ループ処理で処理をスキップする(next)
next |
- for文でnextを使用すると、ループ処理の先頭に戻ります。
- 他言語のcontinueにあたります。
for i in 1..3
if i == 2
next
end
puts i # 1 3が出力される
end
3行目のnextでループ処理の先頭に戻ります。1と3が出力されます。
2重ループ(入れ子)のときにnextを使用する
for i in 1..2
for j in 1..2
if j == 1
next
end
puts "j=" + j.to_s # j=2 j=2が出力される
end
puts "i=" + i.to_s # i=1 i=2が出力される
end
1,2行目にfor文があり2重ループ(入れ子)になっています。
4行目のnextは、内側のfor文の先頭の2行目に戻ります。
関連の記事