- 1
- 2
for (var i:int = 0; i < _dropCount;_dropCount--)
// todo
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−116
for (var i:int = 0; i < _dropCount;_dropCount--)
// todo
bormand 26.02.2013 12:10 # −1
roman-kashitsyn 26.02.2013 12:29 # +2
bormand 26.02.2013 12:32 # 0
roman-kashitsyn 26.02.2013 12:37 # +8
Lure Of Chaos 27.02.2013 12:00 # +1
Jericko 27.02.2013 12:08 # 0
public long getLong(){
return (long) ((getDouble()-353)*20*50*10);
}
"оптимизирует" с PG и компилит в:
public long getLong(){
return (long)(20.0D * 50.0D * 20.0D * (this.getDouble() - 353.0D));
}
c return (long) ((getDouble()-353)*(20*50*10));
всё нормально
bormand 27.02.2013 15:07 # 0
P.S. Судя по стилю именования getDouble и public перед методом - это жаба. Версия компилятора какая? Чем изучали выхлоп?
PG - ProGuard или я туплю?
bormand 27.02.2013 15:22 # 0
А вот почему ProGuard не стал перемножать константы - х.з. Его ман утверждает, что одна из его оптимизаций "Evaluate constant expressions".
bormand 27.02.2013 15:46 # 0
Не хотят пользоваться коммутативностью и ассоциативностью умножения ;)
Jericko 27.02.2013 19:24 # 0
да.
опечатка была - вместо одного значения 20.0D должно быть 10.0D
Java и ProGuard и всё под Android
Psionic 27.02.2013 22:25 # +1
while(_dropCount)
{
_dropCount--;
//some logic
}
bormand 27.02.2013 22:43 # +1
2) Если _dropCount юзался внутри цикла, то декремент надо поставить после some logic.
Полный эквивалент: