前回の文字列の連結と数値と文字列の連結しよはどうでしたか。
同じ処理を何度もくりかえす「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」文を使ってスクリプトを書く
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に表示されます。
●流れ
- 変数「i」を「0」に初期化
- 「i < 10」という条件式に成り立つ場合は真、成り立たなければ偽でfor文を抜ける(for文の処理が行われなくなる)
- 条件式が真なので「Debug.Log(i)」が実行
- 変数の更新「i++」によって、「i」が1増える
- ②にもどる
なんとなく感覚でわかっていただきたいです。ほかの例をあげます。
1.「for」文を使った例
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」までの数字が表示されます。
●流れ
- 変数「i」を「1」に初期化
- 「i < 10」という条件式に成り立つ場合は真、成り立たなければ偽でfor文を抜ける(for文の処理が行われなくなる)
- 条件式が真なので「Debug.Log(i)」が実行
- 変数の更新「i++」によって、「i」が1増える
- ②にもどる
2.「for」文を使った例
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」増やしています。
●流れ
- 変数「i」を「0」に初期化
- 「i < 10」という条件式に成り立つ場合は真、成り立たなければ偽でfor文を抜ける(for文の処理が行われなくなる)
- 条件式が真なので「Debug.Log(i)」が実行
- 変数の更新「i += 4」によって、「i」が4増える
- ②にもどる
3.「for」文を使った例
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」増やしています。
●流れ
- 変数「i」を「5」に初期化
- 「i <= 10」という条件式に成り立つ場合は真、成り立たなければ偽でfor文を抜ける(for文の処理が行われなくなる)
- 条件式が真なので「Debug.Log(i)」が実行
- 変数の更新「i++」によって、「i」が1増える
- ②にもどる
4.「for」文を使った例
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」減らしています。
●流れ
- 変数「i」を「5」に初期化
- 「i > 0」という条件式が成り立つ場合は真、成り立たなければ偽でfor文を抜ける(for文の処理が行われなくなる)
- 条件式が真なので「Debug.Log(i)」が実行
- 変数の更新「i--」によって、「i」が1だけ減る
- ②にもどる
まとめ
- 「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文の説明と使い方にいきましょ。
コメント