【Unity&C#】何度も繰り返すfor文の説明・使い方【基本知識】

前回の文字列の連結と数値と文字列の連結しよはどうでしたか。

同じ処理を何度もくりかえす「for」文を使っていきます。

目次

「for」文は何度も処理をくりかえす

例えばConsoleに「桃」と100個表示したいという場合があるとしましょう。その場合、スクリプトに「Debug.Log("桃"); 」を100個書くわけにはいきません。

長いし、大変だし、見栄えが悪くになりますから。

そこで「for」文を使っていきます。「for」文は何度も同じ処理を繰り返すことができるので、「桃」を100個繰り返すことなんて楽勝。

他にも数字を「1」「2」「3」「4」「5」と繰り返したり、20までの偶数だけ表示することもできます。

C#での「for」文を使い方

●「for」文の使い方

for(変数の初期化; 条件式; 変数の更新)
{
// 繰り返す処理
}

ここでわからなくても構いません。スクリプトを実行してはじめてわかると思うので、あとで見返してください。

「for」文の流れ

【変数の初期化】→→→【条件式】→→【偽】→【for】文を抜ける
 ↑           ↓
【変数の更新】     【真】
 ↑           ↓
 ←←←←←←←←←【繰り返す処理】

(スマホだとずれます)

少し流れも説明していきます。ここもあとで見返してください。

関係演算子

演算子 意味
== A == B AとBが等しい場合真
< A < B AがBより小さい場合真
<= A <= B AがB以下の場合真
> A > B AがBより大きい場合真
>= A >= B AがB以上の場合真
!= A != B AがBと等しくないとき真

スクリプトを書くまえに、もう1つ知っておくべきことがあります。関係演算子というものがあります。

関係演算子というものをつかって、条件式を書きます。書いていけばなれます。

C#で「for」文を使ってスクリプトを書く

Test

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{

         // Use this for initialization
         void Start()
         { 
              // 条件が成り立つ間繰り返す
              for(int i = 0; i < 10; i++)
              {
               Debug.Log(i);            // Consoleに表示
              }
          }

        // Update is called once per frame
        void Update()
         {

         }
}

A < B AがBより小さい場合真
変数++; 変数を1だけ増やす

結果は「0~9」までがConsoleに表示されます。

●流れ

  1. 変数「i」を「0」に初期化
  2. 「i < 10」という条件式に成り立つ場合は真、成り立たなければ偽でfor文を抜ける(for文の処理が行われなくなる)
  3. 条件式が真なので「Debug.Log(i)」が実行
  4. 変数の更新「i++」によって、「i」が1増える
  5. ②にもどる

なんとなく感覚でわかっていただきたいです。ほかの例をあげます。

1.「for」文を使った例

Test

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{

         // Use this for initialization
         void Start()
         { 
              // 条件が成り立つ間繰り返す
              for(int i = 1; i < 10; i++)
              {
               Debug.Log(i);            // Consoleに表示
              }
          }

        // Update is called once per frame
        void Update()
         {

         }
}

変数の初期化の部分を「1」にしました。結果は「1~9」までの数字が表示されます。

●流れ

  1. 変数「i」を「1」に初期化
  2. 「i < 10」という条件式に成り立つ場合は真、成り立たなければ偽でfor文を抜ける(for文の処理が行われなくなる)
  3. 条件式が真なので「Debug.Log(i)」が実行
  4. 変数の更新「i++」によって、「i」が1増える
  5. ②にもどる

2.「for」文を使った例

Test

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{

         // Use this for initialization
         void Start()
         { 
              // 条件が成り立つ間繰り返す
              for(int i = 0; i < 10; i += 4)
              {
               Debug.Log(i);            // Consoleに表示
              }
          }

        // Update is called once per frame
        void Update()
         {

         }
}

結果は「0,4,8」がConsoleに表示されます。

「変数名 += 増やしたい値」が使われています。

変数の初期化を部分を「0」にし、「i < 10」が真であれば、Consoleに表示して、「i」の値を「4」増やしています。

●流れ

  1. 変数「i」を「0」に初期化
  2. 「i < 10」という条件式に成り立つ場合は真、成り立たなければ偽でfor文を抜ける(for文の処理が行われなくなる)
  3. 条件式が真なので「Debug.Log(i)」が実行
  4. 変数の更新「i += 4」によって、「i」が4増える
  5. ②にもどる

3.「for」文を使った例

Test

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{

         // Use this for initialization
         void Start()
         { 
              // 条件が成り立つ間繰り返す
              for(int i = 5; i <= 10; i++)
              {
               Debug.Log(i);            // Consoleに表示
              }
          }

        // Update is called once per frame
        void Update()
         {

         }
}

<= A <= B AがB以下の場合真

結果は「5,6,7,8,9,10」がConsoleに表示されます。「<=」が条件式に入れられているため、「10」も表示されました。

変数の初期化を部分を「5」にし、「i <= 10」が真であれば、Consoleに表示して、「i」の値を「1」増やしています。

●流れ

  1. 変数「i」を「5」に初期化
  2. 「i <= 10」という条件式に成り立つ場合は真、成り立たなければ偽でfor文を抜ける(for文の処理が行われなくなる)
  3. 条件式が真なので「Debug.Log(i)」が実行
  4. 変数の更新「i++」によって、「i」が1増える
  5. ②にもどる

4.「for」文を使った例

Test

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{

         // Use this for initialization
         void Start()
         { 
              // 条件が成り立つ間繰り返す
              for(int i = 5; i > 0; i--)
              {
               Debug.Log(i);            // Consoleに表示
              }
          }

        // Update is called once per frame
        void Update()
         {

         }
}

> A > B AがBより大きいとき真

結果は「5,4,3,2,1」がConsoleに表示されます。「--」はデクリメント演算子といい、1だけ値を減らします。「++」の逆ですね。

変数の初期化を部分を「5」にし、「i > 5」が真であれば、Consoleに表示して、「i」の値を「1」減らしています。

●流れ

  1. 変数「i」を「5」に初期化
  2. 「i > 0」という条件式が成り立つ場合は真、成り立たなければ偽でfor文を抜ける(for文の処理が行われなくなる)
  3. 条件式が真なので「Debug.Log(i)」が実行
  4. 変数の更新「i--」によって、「i」が1だけ減る
  5. ②にもどる

まとめ

  • 「for」文で同じ処理を繰り返すことができる
  • 「for」文には「変数の初期化」「条件式」「変数の更新」が必要
演算子 意味
== A == B AとBが等しい場合真
< A < B AがBより小さい場合真
<= A <= B AがB以下の場合真
> A > B AがBより大きい場合真
>= A >= B AがB以上の場合真
!= A != B AがBと等しくないとき真

からだで覚えてしまってください。では次のif・if-else文の説明と使い方にいきましょ。

あわせて読みたい
【Unity&C#】if・if-else文の説明と使い方【基本知識】 前回の何度も繰り返すfor文の説明・使い方はどうでしたか。多分わかっていただけたはずです(゚∀゚) 今回は「もし〇〇したら、〇〇する」ということを設定できる「if」文を...
C#でのfor文の説明・使い方

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次