【Ruby】繰り返し(ループ)処理の基本 for文の使い方を理解しよう!
  • facebookページ
  • twitterページ
  • 2021.01.31

    【Ruby】繰り返し(ループ)処理の基本 for文の使い方を理解しよう!

    システム開発において、条件に一致している間または指定した回数処理を繰り返すという実装は頻繁に行われます。

    本記事では、Rubyで繰り返し処理を実施する際に利用する「for」文について、サンプルコードを掲載しながらご紹介していきます。

    for文の基本的な使い方


    for文は繰り返しを行うための処理構文で、範囲を指定した上で繰り返したい処理を定義します。

    基本構文

    for文の基本的な記述方法は下記の通りです。

    ポテパンダの一言メモ

    「do」は省略可能です。

    サンプル

    for文で指定するオブジェクトには「範囲オブジェクト」や「配列オブジェクト」「マップオブジェクト」が利用されます。

    範囲オブジェクト

    範囲オブジェクトは「最初の値..最後の値」の形式で記述します。

    実行結果

    サンプルの場合、範囲オブジェクトとして指定した「1~5」の値が順番に変数「range」に格納され、繰り返し処理として指定したコンソール出力が順番に実行されます。

    配列オブジェクト

    配列オブジェクトを範囲として指定した場合のサンプルも確認してみましょう。

    もちろん一旦変数オブジェクトに格納してfor文に記述することも可能です。

    実行結果

    処理の詳細に関しては範囲オブジェクトの場合と同じです。

    マップオブジェクト

    マップオブジェクトを利用する場合、変数を2つ用意して「key」と「value」をそれぞれ格納します。

    実行結果

    「var1」にはマップオブジェクトのkeyとなる値が格納されており、「var2」にはvalueとなる値が格納されます。

    for文を使ったパターン別サンプルコード


    for文を使った処理では、繰り返し処理の途中で条件を設定し、「中断」「スキップ」「再実行」といった任意の処理を実行させることも可能です。

    サンプルコードで各処理内容を確認していきましょう。

    breakで処理を終了

    「break」を記述した場合、繰り返し処理の途中だとしても中断させることが可能です。

    例えば下記のサンプルでは値が「3」の場合に、繰り返し処理を終了するように記述しています。

    実行結果

    サンプルの場合、コンソール出力を実施する前に値が「3」かどうかを確認し、「3」の場合には繰り返し処理を抜けるように記述しています。

    ちなみにbreakではプログラム自体を終了させるわけではありませんので、下記のような2重ループの処理では内側のループのみを中断し外側のループの続きから再実行されます。

    実行結果

    nextで処理をスキップ

    上記「break」で利用したサンプルを「next」に修正するとどのような動きになるか確認してみましょう。

    実行結果

    「next」を指定した場合、該当する条件の値のみ処理をスキップし、次の値から引き続き処理が続行されるためサンプルのような出力結果となります。

    redoで再実行

    同じくサンプルコードを「redo」に修正して実行してみましょう。

    今回は少しサンプルコードに処理を追加します。

    ポテパンダの一言メモ

    下記の記述で実行すると無限ループとなるため注意してください
    3の値で再実行が繰り返されるため処理を抜けることが出来ません。

    例えば値が「3」の場合にrangeに「5」を代入してみましょう。

    実行結果

    redoの処理では、for文の評価を再度実行するのではなく、for文内に記述された処理内容のみが再度実行されます。

    つまりredoの処理が完了した後、for文で行われる評価は代入した「5」の続きからではなく、元々の値である「3」の次の値「4」として処理が実行されるということです。

    for文とその他繰り返し処理の違い


    for文以外にもRubyで利用可能な繰り返し処理はいくつか存在します。

    よく利用される処理をピックアップしてご紹介していきたいと思います。

    while文

    while文では指定した条件が「true」の間繰り返し処理が実施されます。

    実行結果

    サンプルでは評価対象の変数「num」に初期値として1を代入し、「num」の値が5までの間処理を継続するよう記述しています。

    each文

    each文は主に配列の値を使って繰り返し処理を実施する際、利用されます。

    実行結果

    loop文

    loop文では、上述した「brek」を利用して処理を強制的に終了させない限り、繰り返し処理が継続されます。

    実行結果

    times文

    times文では指定した回数だけ、繰り返し処理が実施されます。

    実行結果

    「指定回数.times」の形で繰り返し回数を指定することが可能です。

    さいごに: Rubyのfor文はシステム開発の必須処理


    本記事では、Rubyで繰り返し処理を記述する際に利用する「for」文の使い方についてサンプルコードを掲載しながらご紹介していきました。

    for文を使用した繰り返し処理は、ほとんどのシステム開発で利用されています。

    Rubyプログラマーとしての必須知識と言えますので、今回ご紹介した基本を押さえて応用的な処理も徐々に理解出来るよう学習していきましょう。



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

    この記事をシェア

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









    ABOUT US

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

    READ MORE