Написание FizzBuzz

Читая ужас кодинга, я только что в другой раз наткнулся на FizzBuzz.

Исходный пост здесь:Ужас кодирования :Почему программисты не умеют... программировать?

Для тех, кто не знает :FizzBuzz — довольно популярная детская игра. Считая от 1 до 100, и каждый раз, когда число делится на 3, вызывая "Физз", каждый раз номер делится на 5, звонит "Buzz" и каждый раз, когда номер делится на 3 и 5, вызывая "FizzBuzz вместо номера

Но на этот раз я просто начал его кодировать. Это была минутная работа, но есть несколько вещей, которые мне не нравятся.

Вот мой код

public void DoFizzBuzz()
{
    var combinations = new Tuple[] 
    { 
        new Tuple (3, "Fizz"), 
        new Tuple (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);
    }
}

Итак, мои вопросы:

  1. Как избавиться от найденного bool?
  2. Есть ли лучший способ тестирования чем foreach?

22
задан Mare Infinitus 1 August 2012 в 20:23
поделиться