Источник:
http://axforum.info/forums/blog.php?b=358
==============
Навеяно статьей
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) в Х++.