Pisanie FizzBuzz
Czytając horror kodowania, natknąłem się na FizzBuzz innym razem.
Oryginalny post jest tutaj:Coding Horror: Dlaczego programiści nie mogą ... Programować?
Dla tych, którzy nie wiedzą: FizzBuzz to dość popularna gra dla dzieci. Licząc od 1 do 100, a za każdym razem liczba jest podzielna przez 3 wywołując „Fizz”, za każdym razem, gdy liczba jest podzielna przez 5, wywołując „Buzz” i za każdym razem, gdy liczba jest podzielna przez 3 i 5, dzwoniąc „FizzBuzz zamiast numer
Ale tym razem zacząłem kodować. To była praca na minutę, ale jest kilka rzeczy, których nie lubię.
Oto mój kod
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);
}
}
Moje pytania to:
Jak pozbyć się znalezionego boolu?Czy istnieje lepszy sposób testowania niż foreach?