質問させてください
for (int i = 0; i < 3; i++)
{
double hoge;
switch (i)
{
case 0:
hoge = 22;
break;
case 1:
hoge = 23;
break;
case 2:
hoge = 24;
break;
}
Console.WriteLine(hoge);
}

このコードだと未割り当てのローカル変数 'hoge' が使用されました。
と出て動かないのですが何故なのでしょうか?
default:
  hoge = 9999;
  break;
など適当なdefaultを挟むと動くのですが…
よろしくお願いします。