if

もしも信号が青ならば渡りなさい。もしも信号が赤ならば止まりなさい

ifは英語で「もし」って意味だよね?
using UnityEngine;
public class test : MonoBehaviour
{
void Start()
{
int num = 1;
if (num == 0)
{
print("numは0です");
}
else if(num == 1)
{
print("numは1です");
}
}
}

じゃあ出力結果はわかるかい?

[numは1です
]でしょ?numが1と同じだったらって書いてあるもん

そうだね。最初にnumに1が代入されてるから、正解だ。if文は条件に当て嵌まらない時に[else]と書いて別のパターンを追加出来るんだ
using UnityEngine;
public class test : MonoBehaviour
{
void Start()
{
int num = 2;
if (num == 0)
{
print("numは0です");
}
else if(num == 1)
{
print("numは1です");
}
else
{
print("numは0でも1でもありません");
}
}
}

これはわかるかな?


numは0でも1でもありません

当て嵌まるものがなかったから、それ以外である[else]の中のprintが実行されたことが確認できるね。大丈夫みたいだから、次はforを学ぼう
for

forはループ処理をする命令だよ。for(変数の初期化; 条件を満たしている間; ループの度に行う処理)という風に書くんだ


……は?
using UnityEngine;
public class test : MonoBehaviour
{
void Start()
{
for(int x=1; x <= 100; x++) //変数xに1を代入。xが100以下の時は実行。ループする度にxに1を足す
{
print(x + "回目の実行です");
}
}
}



そういうことか!演算子はさっきやったからわかるよ。x <= 100 ってところが、少しややこしいかな。まぁ、99<=100とか、100<=100とか、101<=100とかしてみると条件を満たすか整理できるかも

そうだね。 [ <=100 ]は=が入ってるとおり、100も含む「以下の時」って意味だね。[ <100 ] だと100「未満の時」、つまりは100になるとループが止まるので、処理結果は1回少なくなる。ループ処理は条件式の書き方に注意しないと駄目だよ。じゃあ実行してみようか


きっちり100回分実行された!これはすごいね!

そうだろう?ifとforを組み合わせて使ってみようか
using UnityEngine;
public class test : MonoBehaviour
{
void Start()
{
for(int x=1; x <= 100; x++)
{
if ((x % 2) == 0)
print(x + "は偶数です");
else if ((x % 2) == 1)
print(x + "は奇数です");
}
}
}



どうなるかわかったよ! 確か % は除算だったから、これは2で割った余りが0か1かで判断してるんだね?……あれ?ifを使う時は{ }で囲むはずだよね?囲まれてないのに動いてるよ?

実は処理内容が一行だけの場合は{ }は省略可能なんだよね。ちなみにforもネスト構造(入れ子状)にすることが出来るんだ
using UnityEngine;
public class test : MonoBehaviour
{
void Start()
{
for(int x=1; x <= 9; x++)
{
for (int y=1; y <= 9; y++)
{
print( x * y );
}
}
}
}



これってもしかして九九? xが1増える度に、yが9回まわってるもん。終了までにxが9回まわって、yは81回もまわってる。9×9=81ってことだね!

その通りだね。じっくり見れば、流れも複雑じゃないからわからなかったら落ち着いて考えてみてね。ifとforについてはこの辺にしておこうか。次はswitchだ
次のページ


※コメントポリシーはこちらから。