|
![]() |
#1 |
Участник
|
По-моему самое простое это:
X++: for (i = 1; i <=100; i++) { if (i % 3 == 0 && i % 5 == 0) Console.WriteLine("BuzzFuzz"); else if ( i %3 ==0) Console.WriteLine("Fuzz"); else if(i%5 ==0) Console.WriteLine("Buzz"); else Console.WriteLine("{0}", i); } Последний раз редактировалось Bergman; 07.12.2012 в 23:28. |
|
![]() |
#2 |
Участник
|
Не, ребят.
1. Вы занимаетесь внешним видом, а не сутью. В ваших примерах (как и в изначальном) нахождение остатка от деления вычисляется несколько раз (до 4 вместо необходмых 2 вычислений). Представьте, что в реальной жизни это будет не нахождение остатка от деления, а вычисление остатка на некую дату на некоем складе и отдельно на складе пополнения. Вы и там тоже будете запускать процедуру расчета остатков лишние разы? 2. Чем плох if else if... тем что выражение внутри if вычисляется несколько раз. условие внутри switch всегда вычисляется только один раз. Именно для этого (ну, кроме формы записи) и вводился switch в процедурные языки. если в switch условие вычисляется один раз, а в case константы... то можно добиться существенной оптимизации. А не только внешнего вида. в исходном примере суть switch вывернута наизнанку - условие константа, а в case - выражения (вдобавок с избыточным количеством). Возврат к if else if... это возврат. примерно так. удивительно, что об этом приходится писать. |
|
![]() |
#3 |
Участник
|
Ну-ка, ну-ка...
![]() Цитата:
Цитата:
Цитата:
Цитата:
Применительно к Аксапте тут есть одно противоречие: оптимизация vs простота сопровождения и развития кода. Зачастую при написании кода, по-моему, лучше выбрать более "многословный" вариант, состоящий из отчасти избыточных блоков, в большей степени автономных и поддающихся кастомизации, нежели написать лаконичный "заоптимизированный" вариант, который, в случае чего, придется просто выкинуть и переписать с нуля. Это все, во многом, - брюзжание, но все же... не стоит делать из мухи слона: исходный вариант решения далек от идеала, были предложены более оптимальные варианты, но делать далеко идущие выводы на основе такой тривиальной задачи, по-моему, - перебор. |
|
|
За это сообщение автора поблагодарили: Lemming (1), S.Kuskov (1), Player1 (1). |
![]() |
#4 |
Участник
|
Мы все еще находимся в контексте Аксапты или перешли на разговор о "вообще"?
![]() если "вообще" - согласен. Цитата:
Сообщение от gl00mie
![]() Применительно к Аксапте тут есть одно противоречие: оптимизация vs простота сопровождения и развития кода. Зачастую при написании кода, по-моему, лучше выбрать более "многословный" вариант, состоящий из отчасти избыточных блоков, в большей степени автономных и поддающихся кастомизации, нежели написать лаконичный "заоптимизированный" вариант, который, в случае чего, придется просто выкинуть и переписать с нуля.
![]() |
|