Escrevendo FizzBuzz
Lendo o horror da codificação, acabei de encontrar o FizzBuzz outra vez.
O post original está aqui:Coding Horror: Por que não pode programadores .. Programa?
Para quem não sabe: FizzBuzz é um jogo infantil bastante popular. Contando de 1 a 100, e toda vez que um número é divisível por 3 chamando "Fizz", toda vez que um número é divisível por 5 chamando "Buzz" e toda vez que um número é divisível por 3 e 5, chamando "FizzBuzz ao invés do número
Mas desta vez, comecei a codificá-lo. Foi um trabalho de um minuto, mas há várias coisas que eu não gosto.
Aqui está meu código
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);
}
}
Então minhas perguntas são:
Como se livrar do bool encontrado?Existe uma maneira melhor de testar do que o foreach?