2日目 - プログラミング②

乱数(Random.Range)

Random.Range()は決められた範囲でランダムな実数を返します。

Random.Range(最小値,最大値)

最小値と最大値がどちらもint型である場合は整数のランダムな値を、どちらか一方でもfloat型の場合は実数のランダムな値を返します。

void Start()
{
	int ramdomValue;
	float ramdomFValue;
	
	ramdomValue = Random.Range(0,10);
	Debug.Log(ramdomValue);
	
	ramdomValue = Random.Range(-10,10);
	Debug.Log(ramdomValue);
	
	ramdomFValue = Random.Range(0f,1f);
	Debug.Log(ramdomFValue);
}

出力例

image.png

条件分岐(if文)

とりあえず以下の通りに書いて実行してみよう

void Start()
{
	int value = -1;
	
	if(value > 0){
		Debug.Log(value + " は正の数");
	}
	else if(value < 0){
		Debug.Log(value + " は負の数");
	}
	else{
		Debug.Log(value + " は0");
	}
}

出力例

image.png

if文は

「もしも〇〇だったら、これを実行する」 「あるいは☓☓だったら、これを実行する」 「どれにも当てはまらなかったら、これを実行する」

などといったことができます。

基本的な書き方

if(条件){
	条件に当てはまる場合の処理;
}
if(条件){
	条件に当てはまる場合の処理
}else{
	条件に当てはまらなかった場合の処理;
}
if(条件1){
	条件1に当てはまる場合の処理;
}
else if(条件2){
	条件1に当てはまらず、条件2に当てはまる場合の処理;
}

条件の書き方

条件にはbool型の変数を使用し、それがtrue(1)かfalse(0)かでif文の挙動が変わります。

しかし、多くの場合でif文の条件には直接条件を表す式(条件式)を使用します。

条件式には以下の比較演算子を使用します。

A == B  //AがBと等しい時(A=B)、trueを返す
A != B  //AがBと等しくない時(A≠B)、trueを返す
A < B   //AがBより小さい時(A<B)、trueを返す
A <= B  //AがB以下の時(A≦B)、trueを返す
A > B   //AがBより大きい時(A>B)、trueを返す
A >= B  //AがB以上の時(A≧B)、trueを返す

また、複数の条件式を組み合わせることもできます。()を使用することで優先順位を変更できます。

A == B || A == C  //A=Bの時またはA=Cの時、trueを返す
A == B && A == C  //A=BかつA=Cの時(A=B=C)、trueを返す
(A == B || A == C) && B > C  //A=BまたはA=Cでかつ、B>Cの時、trueを返す

これにより、

-3 < x < 5を表したいときは

-3 < x && x < 5

y < 4, 6 < yを表したいときは

y < 4 || 6 < y

とすればよい。

練習②

インクリメント、デクリメント(++, —)

i = i + x のような書き方は非常によく使うため、省略形があるということは前述しました。

i = i + x;
i += x;

よく使う i += 1 にはさらに省略形があります。(インクリメント)

i++;  //処理を実行してから i += 1 をする
++i;  //i += 1 をしてから処理を実行する。

同じく i -= 1にも省略形があります。(デクリメント)

i--;  //処理を実行してから i -= 1 をする
--i;  //i -= 1 をしてから処理を実行する。

ここでいう処理の違いは以下のような場合に現れます。

int i = 0;
int j;
j = i++;  //i=1,j=0
int i = 0;
int j;
j = ++i;  //i=1,j=1

単独で使用する場合などはあまり気にしなくても大丈夫です。

繰り返し処理(for文)

とりあえず以下の通りに書いて実行してみよう

void Start()
{
	for(int i = 0; i < 10; i++){
		Debug.Log(i + "回目の処理");
	}
}

for文は、回数を数える変数を利用して、処理を繰り返し実行することができます。

基本的な書き方

for(カウンタ変数の初期値宣言; カウンタ変数の更新条件; カウンタ変数の更新){
	繰り返し処理;
}

「;」を忘れないように!

for(int i = 0; i < 10; i++){
	処理;
}

このコードの意味は、

最初のiの値は0で、i<10を満たす間 i++ して処理を実行、満たさない場合は終了(計10回実行)

という意味です。

カウンタ変数はあらかじめ宣言しておくこともできます。その値はfor文を終了後も使用することができますが、他のfor文で使用したりすると変更されることになります。

ただし、変数をわかりやすくするためにもfor文内でのみ使用できるように中で宣言することが多いです。また、カウンタ変数には i がよく使用されます。

int i;
for(i = 0; i < 10; i++){

}
Debug.Log(i);

for文は何重かに重複して実行することができます。

int x = 0;
for(int i = 0; i < 5; i++){
	for(int j = 0; j < 3; j++){
		x++;
	}
}
Debug.Log(x);

Break

特定の条件でfor文を強制的に終了させたい場合は break; を使用します。

int x;
for(x = 1; x <= 50; x++){
	if(x == 30){
		break;
	}
}

Debug.Log(x);

練習③

配列

複数の同じ型の変数を一つの変数でまとめて扱うことができます。