Skip to main content

繰り返し

決まられた回数を繰り返す命令「for」

練習課題

C#を読みましょう

以下の表は、C#で書いた命令とその日本語の意味が書いてある。空枠を完成してください。

C#

日本語

for(int i = 0; i < 10; i++)
「i」という変数は 0から9までの値を変えながら、10回繰り返す
for(int i = 1; i <= 10; i++)

for(int i = 10; i > 0; i--)

for(int i = 0; i < 20; i+=2)

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("ゲームオーバー");

このプログラムはコンソールで何を表示するか?その出力を書いてください: