1. Pascal / Говнокод #2335

    +106.6

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if WordCount>GetWord(i) then else if WordCount>GetWord(i) then
      begin
        // ...
        // ...
      end;

    при каких условиях выполнится код между begin-end?..

    Запостил: TAX, 26 Декабря 2009

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

    • какой ужас
      Ответить
    • >при каких условиях выполнится код между begin-end?..
      если GetWord имеет побочный эффект
      Ответить
    • если в GetWord изменяется значение переменной i, то может..
      Ответить
      • Что само по себе говнокод.
        Ответить
        • +1 Ибо в данном сравнении, само сравнение должно проходить атомарно, без разницы изменяется значение i в функции, или нет.
          Ответить
          • Это с чего вдруг оно должно так делать?
            Ответить
    • а он вообще скомпилиться ли?
      компилятор разве поймет "then else"??? если нато дело пошло то then ; else или then begin end; else ))))))))))))
      по тему - судя по коду ниприкаком условии не выполниться.
      Ответить
      • В делфи не ставится ; перед else, на С++ кодишь?))

        А по вопросу, у меня был подобный код на шарпе с БД, правда там был цикл. Если там кроме получения какого-то i-го слова, происходит проверка подключения к базе или серверу, то возможно слово будет доступно только со 2-го раза. Ну или скорее всего меняется переменная WordCount)))
        Ответить
    • Ещё одна причина почему стоит использовать языки, не имеющие побочных эффектов (Haskell), или с явным их обозначением (Scheme).
      Ответить
      • Ты чё опух писать такое в разделе по DELPHI? Уважай наш язык!
        Ответить
      • Криворукий кодер и на хацкеле сможет разгуляться, я вас уверяю :)
        Ответить
    • А если компилятор это оптимизирует, то код может работать не верно?
      Ответить
      • Delphi не способен на такую оптимизацию.
        Ответить
        • Он вообще не способен на оптимизацию.
          Ответить
          • Подтверждаю, он способен только на деоптимизацию:
            http://www.govnokod.ru/2172
            Ответить
          • ололо! Еще как оптимизирует. Так оптимизирует что отладка становится невозможно: то пременная выпилена оптимизатором то значение в данном месте недоступно. Причем с выключенной оптимизацией.
            Ответить

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