Читая ужас кодирования, я просто наткнулся на FizzBuzz в другой раз.
Оригинальное сообщение здесь: Ужас кодирования: почему программисты не могут программировать?
Для тех, кто не знает: FizzBuzz - довольно популярная детская игра. Подсчитывая от 1 до 100, и каждый раз, когда число делится на 3, называя "Fizz", каждый раз число делится на 5, называя "Buzz", и каждый раз число делится на 3 и 5, вызывая "FizzBuzz вместо числа
Но на этот раз я только начал его кодировать. Это была минута, но есть несколько вещей, которые мне не нравятся.
Вот мой код
public void DoFizzBuzz()
{
var combinations = new Tuple<int, string>[]
{
new Tuple<int, string> (3, "Fizz"),
new Tuple<int, string> (5, "Buzz"),
};
for (int i = 1; i <= 100; ++i)
{
bool found = false;
foreach (var comb in combinations)
{
if (i % comb.Item1 == 0)
{
found = true;
Console.Write(comb.Item2);
}
}
if (!found)
{
Console.Write(i);
}
Console.Write(Environment.NewLine);
}
}
Итак, мои вопросы:
- Как избавиться от найденного bool?
- Есть ли лучший способ тестирования чем foreach?