"PHP" / Говнокод #5961 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
$i=10000;

while(true)
{
$i--;

if ($i==0) break;

// Какойто код с $i
}

Выкопал в одном серьезном проекте. Так там что не цикл так while(true) c точками выхода по телу цикла..

Запостил: Vasiliy Vasiliy, (Updated )

Комментарии (16) RSS

  • Если можно, скажите что это за проект Энтересно
    Ответить
  • Обычная практика фирм-разводил.
    В дальнейшем за оптимизацию кода они сдерут немалые деньги, а сделают практически нечего - заменят/оптимизируют/уберут циклы
    Ответить
    • Не вижу ничего плохого в этом коде
      Есть много ситуаций, когда проще и надежнее влепить while(true) и выходить break'ами, чем сочинять выражения внутри скобочек while и потом думать надо while или do { } while здесь использовать

      ну не сильно проще это читать:
      while (--i != 0)
      {
      }

      а если потребуется изменить логику - ошибешься где-нибудь как нефиг делать.
      Ответить
      • не, напрягает. если в условии стоит true - я начинаю лихорадочно искать брейки )
        Ответить
      • вы вчитайтесь. условный выход по брейку не где-то, а в 2й строке тела. ладно бы если где-то внутри цикла еще брейки были, но автор заострил внимание именно на таком раскладе, а стало быть заменяется обычным
        for($i=9999; $i>0; $i--) { ... }

        И даже не пытайтесь убедить меня в том что while на 3 строки более удобочитаем.
        Ответить
      • Тут палка о 2х концах. А если ошибешься внутри цикла и расставишь брейки как бэ не так. Я думаю всегда можно найти здравое условие для выхода, некоторое предельное значение.
        Ответить
  • за ваш контекст не скажу, но я часто такое делаю когда нужно по извращенным входным данным итерировать (типа ходить по графу). иногда случается что кто-то чего-то в входных данных нагородил и прога уходит в вечный цикл (не достигает выхода из графа). кастомерам проблемы намного проще анализировать когда прога слетает по такой sanity check, вместо подвисания.
    Ответить

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8