【Ruby】制御構文nextの使い方を覚えよう!【繰り返し処理】
  • facebookページ
  • twitterページ
  • 2021.04.01

    【Ruby】制御構文nextの使い方を覚えよう!【繰り返し処理】

    繰り返し処理を行う上で、ある一定条件の場合処理をスキップするために利用出来るのが「next」です。

    本記事では、Rubyの制御構文「next」の使い方から他の制御構文との違いについてご紹介していきます。

    nextとは


    nextは制御文の1つで、繰り返し処理の中で実行されることで、該当ブロックの後続処理をスキップし次の繰り返し処理が開始されます。

    記述法

    繰り返し処理の中で「next」と記述するだけで後続処理がスキップされます。

    上記の記述では、条件に該当して「next」が実行された場合、「処理2」に関しては実行されず次の繰り返し処理に移ります。

    繰り返しのスキップは該当ブロックのみ

    繰り返し処理がネストしている場合、「next」が適用されるのは該当ブロックの繰り返し処理のみとなります。

    2つ目のループの「next」が実行された場合、あくまで「処理4」がスキップされるだけで1つ目のループまでスキップするわけではありません。

    Rubyの各種繰り返し処理でnextの動きを確認


    Rubyには繰り返し処理として「for」「each」「loop」「while」「times」といった各種処理が存在します。

    それぞれの繰り返し処理でnextを記述して処理内容を確認してみましょう。

    for

    for文で「next」を実行するサンプルが下記です。

    実行結果が下記です。

    サンプルのfor文では「1~5」の範囲で繰り返し処理が実施され、「3」の場合だけコンソール出力処理をスキップしています。

    each

    each文で特定の文字列の場合「next」でスキップするサンプルが下記です。

    実行結果が下記です。

    繰り返し処理の最後で「next」が実行された場合、そのまま処理が終了することになります。

    loop

    「loop」では終了条件のない繰り返し処理を実施することができ、下記のサンプルでは10までの数値を順番にコンソール出力するサンプルです。

    実行結果が下記です。

    条件として「3」の場合のみ「next」による繰り返し処理のスキップが実施されるため、コンソールには出力されません。

    ポテパンダの一言メモ

    loop処理は「break」で処理を中断させないと無限ループとなるため注意が必要です。

    while

    whileでは終了条件を指定して繰り返し処理を実施することが可能です。

    実行結果が下記です。

    サンプルでは、「num」の値が偶数の場合「next」により処理をスキップするため、奇数の値だけがコンソール出力されます。

    times

    timesでは指定した回数分繰り返し処理が実行されます。

    実行結果が下記です。

    「times」では指定した回数繰り返し処理が実施され、「|num|」と指定した変数が「0」から繰り返し毎に「1」ずつ加算されます。

    サンプルでは変数numが「2」の場合処理がスキップされるため、コンソールには上記のような出力となります。

    ネスト

    最後にネストしたループ処理での動きも確認しておきましょう。

    実行結果は下記です。

    next以外の制御構文との違い


    Rubyで利用可能な繰り返し処理の制御構文として「next」以外にも「break」「redo」の存在が挙げられます。

    それぞれの処理の違いについて確認しておきましょう。

    break

    breakは繰り返し処理を中断させるために利用します。

    実行結果が下記です。

    for文では「1~3」までの間ループすると記述していますが、2回目の処理で強制的に繰り返し処理を中断するように「break」を記述しているため、サンプルのようなコンソール出力となります。

    また繰り返し処理がネストしている場合、「break」を記述したブロックの繰り返し処理のみを中断します。

    実行結果が下記です。

    内側のループでは繰り返しの2回目に必ず処理を抜けるように記述しているため、上記のような出力結果となります。

    redo

    「redo」では再度同じ繰り返し処理を実施します。

    実行結果が下記です。

    元々「さる→とり→いぬ」の順番で繰り返し処理が実施されるはずでしたが、「redo」を使用したことにより「さる→とり→とり→いぬ」の繰り返しとなりサンプルのような出力結果となります。

    さいごに: Rubyのnextを使いこなして繰り返し処理を制御しよう


    本記事では、Rubyの制御構文である「next」の使い方をサンプルコードを掲載しながらご紹介してきました。

    「next」などの制御構文は「if」による条件式と合わせて利用することになります。

    それぞれの繰り返し処理や制御構文の違いを把握して、適切な処理を実現出来るように学習していきましょう。



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE