配列とループ文を使って条件分岐するサンプル

More than 1 year has passed since last update.


最初に

去年の年末から書こうと思ったまま書いてなかったことです

去年作ったゲームで、このアルゴリズムを使いました

もう少し工夫すると、汎用性が上がるかも


コード


using System;

namespace Test {

static class Program {
static void Main() {
var rand = new Random();
var num = rand.Next(10);

TraceNotUseArray(num);
TraceUseArray(num);
}

static void TraceNotUseArray(int num) {
Console.WriteLine("配列を使わない場合の条件分岐");

if (num < 3) Console.WriteLine(num + " 番 : 0 - 2");
else if (num < 5) Console.WriteLine(num + " 番 : 3 - 4");
else if (num < 6) Console.WriteLine(num + " 番 : 5");
else if (num < 10) Console.WriteLine(num + " 番 : 6 - 9");

Console.WriteLine("\n");
}

static void TraceUseArray(int num) {
Console.WriteLine("配列を使った条件分岐");

foreach(var i in TraceDatas) {
if (num >= i.Max) continue;

i.Trace(num);
break;
}

Console.WriteLine("\n");
}

static TraceData[] TraceDatas = new TraceData[]{
new TraceData{ Max = 3, AddStr = "0 - 2" },
new TraceData{ Max = 5, AddStr = "3 - 4" },
new TraceData{ Max = 6, AddStr = "5" },
new TraceData{ Max = 10, AddStr = "6 - 9" },
};
}

sealed class TraceData {
public int Max { get; set; }
public string AddStr { get; set; }

public void Trace(int num) {
Console.WriteLine(num + " 番" + " : " + AddStr);
}
}
}