【Unity】break文とは?ループ処理を途中で終わらせるためのキーワード

break文とは? Unity

こんにちは、ともくんのゲーム作り部屋にようこそ!

このページでは、

「break文ってなに?」

「break文はどんな時に使うの?」

というお悩みの方に向けた内容となっています。

Unityで使われるC#では、スクリプト内でbreak文という仕組みを使うことがあります。

このbreak文とは、for文やwhile文などのループ処理を記述する際に、途中でループ処理を終了することができるキーワードです。

例えば、int型の配列の中から偶数の値を3つだけ表示させたいというような場合に、for文でループ処理を作り、偶数の値を3つ取り出して表示させたら、break文を使ってループ処理を終了させるということができます。

そこで、このページでは、UnityのC#で使えるbreak文について、どんな仕組みなのか、また使い方までをまとめていきます。

この記事を書いた人

ゲーム作りを学び始めた一児のパパです。
このブログは、子供から「ゲームを作ってみたい!」と言われ、非プログラマーでゲーム作りをしたことない僕が、ゲーム作りの本を読んで独学でゲーム開発を学んでいるブログです。
同じように初めてゲーム作りをしている方と一緒に学んでいけるようなブログに出来たらいいなと思っています。
また、「このコードはおかしい」とか「もっと良い書き方があるよ!」などあれば、どんどん指摘して頂けると助かります。

break文とは?for文などのループ処理を終了できる

break文とは、冒頭でも記述した通りで、for文やwhile文などのループ処理を行う際に使うもので、ループ処理をその時点で強制的に終了させることができます。

そもそもfor文というのは、ループ変数を使って中に記述した処理を指定回数分、反復させることができる仕組みです。

このfor文の中の処理にbreak文を記述すると、以下のように指定したループ回数に到達していなくても、そのbreak文が読み込まれた時点でループ処理を終了して抜けることができます。

なおここでは、for文で紹介していますが、同様にループ処理を行うことができるwhile文などでも、break文を記述することで、ループ処理を終了させることができます。

break文の使い方

ここからは、実際にbreak文の使い方について紹介していきます。

for文やwhile文内での条件制御の中で記述する

break文を使う際は、for文やwhile文のループ処理の中で、if文などの条件制御の中で、

break;

と記述して使ってあげます。

例えば、for文で5回繰り返すという処理を作っていて、3回目のループ処理の際にbreak文でループを終了させる場合、以下のようにスクリプトで記述していきます。

for (int i = 0; i < 5; i++)
{
    Debug.Log(i);

    // 3回目の処理の時
    if (i == 2)
    {
        break;  // ループ処理から抜ける
    }
}

if文の中の8行目で、ループ変数iの値が「2」になった時に、breakを使ってループを終了させる処理を記述しています。

これをStartメソッドなどで記述してゲームを実行してみると、

上記のように、3回表示される処理が繰り返された後、ループ処理が終了しているのが分かります。

配列から特定の回数だけ値を取り出す処理

次に、foreach文break文を使って、int型の配列の値から偶数を5つだけ取り出すという処理を作ってみます。

ちなみにforeach文とは、配列やコレクションなどに入っている要素の数だけループ処理を行ってくれるという記述方法です。

空オブジェクトを作成して、以下のスクリプトをアタッチしておきます。

using UnityEngine;

public class Test : MonoBehaviour
{
    int[] nums = { 3, 24, 7, 13, 16, 29, 47, 52, 42, 65, 11, 23, 74, 50, 90, 43, 22, 12, 79, 20};   // 配列を定義する

    void Start()
    {
        int count = 0;

        // 配列の数だけループ処理
        foreach (int n in nums)
        {
            // 偶数の時のみ
            if (n % 2 == 0)
            {
                Debug.Log(n);
                count++;    // 表示回数を計測
                if (count == 5)
                {
                    break;  // 5回表示させたらループ処理を終了する
                }
            }
        }
    }
}

まず、5行目で20個の整数が入っている配列を定義しています。

そして、12行目でforeach文を記述して、配列の値を一つずつ変数nに代入しながら繰り返すという処理を行っています。

このforeach文の中の15行目で、2で割った際の剰余が0である値だけをコンソールウィンドウに表示させる処理を行っています。

また、count変数を使って表示された回数を計測していて、5回表示された場合にループ処理が終了するように、21行目でbreak文の記述を行っています。

これで実行してみると、

配列の上から順番に5つの偶数だけが表示されていて、それ以外の偶数の表示処理が行われなくなっているのが分かります。

まとめ

このページでは、UnityのC#で使えるbreak文について、どういう仕組みなのか、また使い方や記述方法をまとめていきましたが、いかがでしたでしょうか?

break文とは、for文などのループ処理を行っている際に使うもので、break文を記述すると、その時点でループ処理を終了させることができます。

if文などの条件制御の中でbreak文を記述することで、特定の条件を満たした際にループ処理を終わらせるといったことができます。

特に、配列やコレクションなどから特定の回数だけ取り出したい場合や、条件に一致する値を探すような場合に、break文が活用できます。

最後までお読みいただきまして、ありがとうございました!

コメント