У комп'ютерному програмуванні логічна помилка — це помилка в програмі, яка спричиняє її неправильну роботу, але не призводить до аварійного завершення (або збою). Логічна помилка призводить до неочікуваних або небажаних результатів або іншої поведінки, хоча це не відразу можна помітити.

Логічні помилки виникають як у компільованих, так і в інтерпретованих мовах. На відміну від програми з синтаксичною помилкою, програма з логічною помилкою є правильною програмою з погляду мови, хоча й поводиться не так, як передбачалося. Часто єдиною підказкою про існування логічних помилок є створення неправильних розв'язків, хоча статичний аналіз іноді також дає змогу їх помітити.

Усунення логічних помилок Один зі способів виявити помилку такого типу — вивести змінні програми у файл або на екран, що дає змогу визначити місце помилки в коді. Хоча це працює не у всіх випадках, наприклад, під час виклику підпрограми з помилкою, це найпростіший спосіб знайти проблему, якщо програма використовує неправильні результати хибного математичного розрахунку.

Приклади Цей приклад функції мовою C для обчислення середнього арифметичного двох чисел містить логічну помилку: у виразі відсутні круглі дужки. Програма компілюється та виконується, але повертає неправильну відповідь через пріоритет оператора (ділення виконується перед додаванням):float average(float a, float b) { return a + b / 2; // має бути (a + b) / 2 }

Див. також Синтаксична помилка (програмування) Помилка на одиницю

Примітки