![]() |
#5 |
Участник
|
а вот объектно-ориентированная многословная реализация, если не лень заводить класс в AOT. Но зато тело цикла не содержит деталей реализации - детали в классе.
X++: class TestState { boolean state; str description; } void new(int i, int num, int _description) { state = i mod num; if( state ) description = _description; } boolean getState() { return state; } str getDescription() { return description; } ///////////////////////////////////////// #define.FIZZ(3) #define.BUZZ(5) static void FizzBuzzImpl(Args _args) { int i; TestState fizz, buzz; ; for (i = 1; i <=100; i++) { fizz = new TestState(i, #FIZZ, "Fizz"); buzz = new TestState(i, #BUZZ, "Buzz"); if( fizz.getState() || buzz.getState() ) { info(strfmt("%1%2 %3", fizz.getDescription(), buzz.getDescription(), i)); } } } ![]() вместо простой конкатенации строк FizzBuzz можно сделать класс, который формирует вывод... В любом случае, это будет лучше чудовищного switch. |
|