制御構文を覚える!Rubyでnextを使う方法【初心者向け】

Rubyでnextを使う方法について解説しています。nextは繰り返し処理の時、next以降の部分を飛ばして、次の処理を開始します。実際に処理の流れを見ながら覚えていきましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

nextは繰り返し処理の時、next以降の部分を飛ばして、次の処理を開始します。

文章で書いてもよく分からないと思うので、プログラムと実行結果から説明していきます。

そもそもRubyがよく分からないという方は、Rubyとは何なのか解説した記事をご覧ください。

 

なお本記事は、TechAcademyのWebアプリケーションオンラインブートキャンプの内容をもとに紹介しています。

 

大石ゆかり

田島メンター!!繰り返し処理を行うときに、ある部分だけ飛ばして実行するみたいなことは可能なんですか〜?

田島悠介

そういうときはnextを使うのがいいね。

大石ゆかり

nextというのは何をするんですか〜?

田島悠介

指定した条件の処理をスキップすることができるんだ。実際にコードを書いてみようか。

 

実際に書いてみよう

(1..100).each do |num|
  if(num %10 != 0)
    next
  end

  print("num = ", num,"\n")
end

 

田島悠介

「値を10で割った余りが0でないケース」を全て飛ばしているんだ。

大石ゆかり

となると、残るのは全部10の倍数ですか?

田島悠介

その通り!実際に出力されるとどうなるか見てみよう。

 

実行結果

bfc43855bbb527d58d545690399dc320

eachメソッドを使って、1から100までの10の倍数を表示させるプログラムを書いてみました。

条件文で、10で割ったあまりが0でないときはnextを使って終了させるようにしています。

こうすることで、10で割ったあまりが0の時、つまり10の倍数を表示することができます。

 

このようにnextを使うことで、繰り返し処理の中から本当に欲しい結果だけを取り出すことができます。

 

田島悠介

同様に処理を飛ばすものとしてbreakがあるけれど、breakは条件に一致したらそれ以降の処理すべてをスキップするんだ。

大石ゆかり

breakの場合はそこで終わりで、nextの場合は続きがあるってことですね。

田島悠介

そうだね。こういった繰り返し内での細かい処理も必要となる場合が出てくるのでよく覚えておこう。

大石ゆかり

breakの方も練習してみます。ありがとうございました!

 

[お知らせ]TechAcademyでは初心者でも8週間でエンジニアになれるRuby on Railsオンラインブートキャンプを開催しています。RubyでWebアプリを開発したい方はご参加ください。