Логическая ошибка
В компьютерном программировании логическая ошибка — это ошибка в программе, которая приводит к ее неправильной работе, но не к аварийному завершению (или сбою ). Логическая ошибка приводит к непреднамеренному или нежелательному выводу или другому поведению, хотя она не может быть сразу распознана как таковая.
Логические ошибки возникают как в компилируемых , так и в интерпретируемых языках. В отличие от программы с синтаксической ошибкой , программа с логической ошибкой является допустимой программой на языке, хотя и не ведет себя так, как задумано. Зачастую единственным ключом к существованию логических ошибок является неправильное решение, хотя статический анализ иногда может их обнаружить.
Отладка логических ошибок
[ редактировать ]Один из способов найти ошибку такого типа — вынести переменные программы в файл или на экран, чтобы определить место ошибки в коде. Хотя это будет работать не во всех случаях, например при вызове неправильной подпрограммы , это самый простой способ обнаружить проблему, если программа использует неверные результаты плохого математического расчета .
Примеры
[ редактировать ]Этот пример функции на языке C для вычисления среднего значения двух чисел содержит логическую ошибку. В вычислении отсутствуют круглые скобки, поэтому он компилируется и запускается, но не дает ожидаемого ответа из-за приоритета операторов (перед сложением вычисляется деление).
float average(float a, float b)
{
return a + b / 2; // should be (a + b) / 2
}
См. также
[ редактировать ]