|
|
|
|
#1 |
|
Участник
|
а вот объектно-ориентированная многословная реализация, если не лень заводить класс в 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. |
|
|
|
|
#2 |
|
Участник
|
кстати. в исходной задаче нужно было выводить все числа.
в процедурном коде можно убрать if. а объектно-ориентированный код становится еще короче. X++: class TestState { str description; } void new(boolean _state, int _description) { if( _state ) description = _description; } 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 mod #FIZZ) == 0), "Fizz"); buzz = new TestState(((i mod #BUZZ) == 0), "Buzz"); info(strfmt("%1%2 %3", fizz.getDescription(), buzz.getDescription(), i)); } } |
|
|
|
|
#3 |
|
Участник
|
Все, я сдаюсь, тут опять две ошибки компиляции, одна в new, я ее вроде пофиксил, хотя не факт что правильно, т.к. не до конца понимаю задумку кода, а вторая в запускающем Job'е, снова путаница int/str...mazzy
upd: Джобик из второго поста запустил, да, работает. Спасибо! Последний раз редактировалось Lemming; 06.12.2012 в 23:04. Причина: upd |
|
|
|
|
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|