AXForum  
Вернуться   AXForum > Блоги > OZKA's DAX Journal
CRM
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

Оценить эту запись

FizzBuzz

Запись от Lemming размещена 06.12.2012 в 21:34
Теги axapta, xpp

Навеяно статьей FizzBuzz, или почему программисты не умеют программировать

Цитата:
Напишите программу, которая выводит на экран числа от 1 до 100. При этом вместо чисел, кратных трем, программа должна выводить слово «Fizz», а вместо чисел, кратных пяти — слово «Buzz». Если число кратно и 3, и 5, то программа должна выводить слово «FizzBuzz»
X++:
#define.FIZZ(3)
#define.BUZZ(5)
static void FizzBuzzImpl(Args _args)
{
    int i;
    ;

    for (i = 1; i <=100; i++)
    {
        switch(true)
        {
            case ((i mod #FIZZ) == 0) && ((i mod #BUZZ) == 0):
                info(strfmt("FizzBuzz %1", i));
                break;
            case ((i mod #FIZZ) == 0):
                info(strfmt("Fizz (%1)", i));
                break;
            case ((i mod #BUZZ) == 0):
                info(strfmt("Buzz (%1)", i));
                break;
            default:
                info(strfmt("%1", i));
        }
    }
}
p.s. Кстати, switch(true) невероятно мощная конструкция, которую можно смело считать реализацией "Сопоставления с образцом"(pattern matching) в Х++.
Размещено в Без категории
Просмотров 148698 Комментарии 1
Всего комментариев 1

Комментарии

  1. Старый комментарий
    А чем хуже else if ?
    Запись от Player1 размещена 30.11.2013 в 17:56 Player1 is offline
 


Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:46.