Interested Article - Логическая ошибка (программирование)

Эта статья о логической ошибке в программировании. Об ошибках, связанных с нарушением логической правильности рассуждений, см. Логическая ошибка .

В программировании логической ошибкой называется баг , который приводит к некорректной работе программы, но не к краху программы .

Логические ошибки могут происходить как в компиляторах , так и в интерпретаторах . В отличие от синтаксических ошибок, программы с логическим изъяном являются правильными программами, хотя в большинстве случаев ведут себя не так, как задумано первоначально .

Существование данного вида ошибок связано с неправильными действиями на этапе принятия решений.

В C++ логической ошибкой также называется особое исключение ( logic_exception ).

Общие причины

Ошибки могут быть связаны как с простейшими опечатками в написании операторов, так и в запутанном выборе веток алгоритма. Существует также масса других причин: некорректное приведение типа , использование переменной вне её области видимости , отсутствие фрагмента кода и ошибочное понимание разработчиком требований.

Отладка логических ошибок

Одним из способов поиска этого типа ошибки является распечатка списка переменных в программе (во внешний файл или на экран). Хотя этот способ не работает, если ошибка заключается в вызове не той функции , он всё же является самым простым в случае неправильной реализации математического алгоритма .

Примеры

В этом примере задачей функции является возвращение среднего для двух переданных чисел. Ошибка кроется в неучёте приоритета операторов (деление в выражении вычисляется до операции сложения) и отсутствии по этой причине скобок.

int average(int a, int b)
{
    return a + b / 2;     /* правильная запись (a + b) / 2 */
}

См. также

Примечания

  1. . Microsoft. Дата обращения: 5 января 2017. 6 января 2017 года.
Источник —

Same as Логическая ошибка (программирование)