Skip to main content

条件分岐

練習課題

C#の処理を完成してみましょう

1. 以下のC#のプログラムを完成してください

// ゲームでダメージを受け、残機を確認し、ゲームオーバーかどかう判定する

int hp = 50; // 体力
int lives = 1; // 残機
int damage = 100; // ダメージ

// ダメージを受け、体力を減らす

________________________________________

// もし、体力が0以下だったら...

________________________________________
{
    // 残機を一つ減らす

    ______________________________________
}

// もし、残機がゼロだったら

________________________________________
{
    Debug.Log("ゲームオーバー");
}

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



2. 以下のC#のプログラムを完成してください

// レースゲームで、チェックポイントを通過することにより、時間切れを延期する

float timeLeft = 8.51; // 残りの時間(秒数)
float raceDistance = 5843.43; //走行距離

float checkPoint01 = 2300; // スタート → チェックポイント1の距離
float checkPoint02 = 1500; //  チェックポイント1 → チェックポイント2距離
float goalPoint = 2500; // チェックポイント2 → ゴールまでの距離

// もし、ゴールを超えていたら...

_____________________________________________________
{
    Debug.Log("レース終了!");
}

// 一方、もし走行距離がチェックポイント2を超えたら...

_____________________________________________________
{
    Debug.Log("チェックポイント2通過!");
    timeLeft += 80;
}

// 一方、もし走行距離がチェックポイント1を超えたら...

_____________________________________________________
{
    Debug.Log("チェックポイント1通過!");
    timeLeft += 60;
}

// 残りの時間を表示
Debug.Log($"残りの時間:{timeLeft}");

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


Unityで練習

体重と身長でBMIを計算し、画面で適切な出力を表示しよう(参考:BMIと適正体重

BMI Table 式:BMI = 体重kg ÷ (身長m)2

ヒント:

  • 体重と慎重の変数を作成し、適当な数値を代入
  • BMIを計算
  • if分でBMIの判定し、コンソールで表示

比較の改良

同じ変数をなんども「==」で比較する「switch-case」

次の問題について考えてみてください

サイコロの数値は1から6までの間にして、その値を漢字で表示したい。つまり「1」の場合は「一」、「2」の場合は「二」など。if-elseで作成するとしたら、以下のようなプログラムになる:

// サイコロの値
int dice = 5;

if (dice == 1)
{
    Debug.Log("一");
}
else if (dice == 2)
{
    Debug.Log("二");
}
else if (dice == 3)
{
    Debug.Log("三");
}
else if (dice == 4)
{
    Debug.Log("四");
}
else if (dice == 5)
{
    Debug.Log("五");
}
else if (dice == 6)
{
    Debug.Log("六");
}
else
{
    Debug.Log("無効な数値");
}

このプログラムは、カスケードのように「1じゃなければ、2を確認する、2じゃなければ、3を確認する」、次々に「==」で比較するパターンは時々に現れる。この場合は「switch-case」が便利。上のプログラムは以下のようになる:

// サイコロの値
int dice = 5;

switch(dice)
{
case 1: // dice == 1 と同じ 
    Debug.Log("一");
    break;
case 2: // dice == 2 と同じ
    Debug.Log("二");
    break;
case 3: // dice == 3 と同じ
    Debug.Log("三");
    break;
case 4: // dice == 4 と同じ
    Debug.Log("四");
    break;
case 5: // dice == 5 と同じ
    Debug.Log("五");
    break;
case 6: // dice == 6 と同じ
    Debug.Log("六");
    break;
default: // elseと同じ
    Debug.Log("無効な数値");
    break;
}