Ruby for文 処理を繰り返す(break/continue)

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行目に戻ります。

関連の記事

Ruby if文のサンプル

△上に戻る