1. C++ / Говнокод #56

    +246

    1. 1
    2. 2
    3. 3
    4. 4
    if (result == true)
      return true;
    else
     return result;

    этпипец... из разряда индокода, только в реале

    Запостил: guest, 04 Декабря 2008

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

    • Sap:
      Похоже, сначала возвращалось не булевское значение, а како-0то код ошибки и было что-то вроде:
      if (result == true)
        return -1;
      else
       return result;

      А потом по ходу отладки решили возвращать булевское - поставили заплатку, да так она и осталась. В больший проектах и не такое встречется.
      Ответить
      • неа, надо так:
        if (result == true)
        return true;
        else
        {
        if (result == false) return false;
        else
        {
        return (!true) && (!false); // ну надо же хоть что-то вернуть....
        }
        }
        Ответить
    • показать все, что скрытоили автор кода подразумевал оператор === вместо ==, тогда вполне вменяемый смысл приобретается :)
      Ответить
    • tigerox:
      да с === код не скомпилируется-смысл понятен=)
      Ответить
    • Звездочёт:
      Ну да! Конечно! Автор же не знает значение result! Вот и надо узнать! А то он ещё возвратит result непонятно какой...)
      Ответить
    • Andrei:
      мг...похожее обычно получается после нескольких мелких изменений в коде в разное время. А потом как-нибудь смотришь на весь фрагмент в целом и понимаешь что данунах.
      Ответить
    • AntON-LINE:
      я иногда так куски html комментирую
      ..
      if(0){
      ?>
      <table><tr..<?=$var?>
      строк 30
      </table>
      <?
      }
      главное по view source всего этого не будет ))

      так что в процессе многоразового исправления и не такое "накапливается"
      Ответить
      • а нефиг на сыром пхп писать.
        smarty - наше всё
        Ответить
    • Индокод реален, %username%
      Ответить
    • не пиздить, код нормальн для языка где у есть неопределенное значение у логической переменной, например...
      Ответить
    • Если для result переопределён опреатор ==, то смысл есть. Хотя, конечно:
      return result == true;
      Или ещё православней использовать преобразование типа
      Ответить
    • Довольно часто так делают что в вставить берйкпоинт перед возвратом из функции
      Ответить
      • Поддерживаю, иногда возникают задачи, когда BP нужно поставить по определенному условию. Еще ладно, когда это условие выполняется чаще, чем не выполняется... Но если только вероятность - 1%, то приходится прибегать к таким конструкциям... Возможно, человек просто забыл убрать :-)
        Ответить
        • что то забыл, а Condition в BP не вариант использовать?
          Ответить
    • Если result == 1, тогде его результат вернет true ( typeof true == boolean ), а если просто заменить на return result, то получим 1 ( typeof true == number )

      Так-что все кто сразу заржали, что автор полный мудак ВОЗМОЖНО тоже мудаки
      Ответить
    • В некоторых языках это может быть нормальным кодом. В if (result == true) result не обязательно булев тип, а только приводится к нему. То есть если result равен true, то возвращаем true, иначе возвращаем result.

      А вообще надо в таких случаях писать так:
      return not result or true
      Ответить
    • Например в павне будет работать такая штука.
      new variable = 0;
      if(varible)
      {
      return varible = true;
      }
      else if(!varible)
      {
      return varible = false;
      }
      Ответить

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