繰り返し
繰り返し命令:for決まられた回数を繰り返す命令「for」
練習課題
C#を読みましょう
以下の表は、C#で書いた命令とその日本語の意味が書いてある。空枠を完成してください。
|
C# |
日本語 |
|
「i」という変数は 0から9までの値を変えながら、10回繰り返す |
|
|
|
|
|
Unityで練習
1〜100の整数を繰り返し、表示してください。ただし…
「3」で割れる整数の代わりに「ho」を表示
「5」で割れる整数の代わりに「ge」を表示
「3」と「5」両方で割れる整数の代わりに「hoge」を表示
例:
1, 2, ho, 4, ge, ho, 7, 8, ho, ge, 11, ho, 13, 14, hoge, 16, 17, ho …
ヒント
「余り」演算子(モジュロ、剰余演算子)を使ってください。余りの演算子は整数の割り算の余りを返す:
int a = 4 % 3; // a は 1 になる
int b = 6 % 3; // b は 0 になる
int c = 12 % 5; // c は 2 になる
回数が決まっていない繰り返す命令「while」
for文は決まった回数(例:0~10)を繰り返す命令であるが、場合により、回数が決まっていなく、何かの条件を満たしている間には繰り返す場合もある:
例:体力残っていたら→遊び続ける
例:時間切れになっていなければ→遊び続ける
例:敵がプレーヤーを捕まっていなければ→追いかける
書式:
while(繰り返し条件)
{
繰り返したい処理
}
例えば、サイコロは「6」になるまで繰り返すを書くとしたら:
int dice = 0;
while (dice != 6)
{
// Random.RangeはUnityの機能であり、乱数を生成する
dice = Random.Range(1, 7); // 1〜6の間の乱数を生成(7未満)
Debug.Log($"サイコロの値:{dice}");
}
Debug.Log("終了");
上記の例で、回数が決まっていなくて、サイコロは6以外だったら繰り返す処理である。
練習課題
以下のスクリプトでwhileを使い、完成してください(UnityでもOK)
// 体力
int playerHP = 100;
// プレーヤーが生きていたら、繰り返す
________________________
{
Debug.Log($"現在の体力 {playerHP}");
int damage = 30;
playerHP -= damage; // 体力を減らす
}
Debug.Log("ゲームオーバー");
このプログラムはコンソールで何を表示するか?その出力を書いてください:
|
|