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