Błąd logiczny to problem z kodem programowania komputera, którego nie można łatwo zidentyfikować podczas pisania lub kompilowania kodu. Czasami nazywany błędem semantycznym, błąd logiczny na ogół jest winą programisty; nawet jeśli kodowanie jest poprawne, wynikowa odpowiedź może być jeszcze nieprawidłowa. Jeśli kompilator języka programowania zostanie dostarczony z błędem logicznym, pomyślnie zinterpretuje dostarczony kod, w wyniku czego powstanie działający program, który może zwrócić błędne dane.
Błędy logiczne są trudne do wychwycenia przez programistę, ponieważ interpreter języka programowania nie identyfikuje tego błędu jako problemu. Po pomyślnym wykonaniu kodu wyniki, bez umyślnego zbadania, mogą początkowo wydawać się poprawne. Aby zidentyfikować tego typu błędy, osoba, która ma wiedzę na temat oczekiwanych wyników i funkcji programu, powinna przejrzeć dane wyjściowe i działanie tego programu.
Aby znaleźć błąd logiczny w kodzie, trzeba być w stanie metodycznie prześledzić źródło błędu. Błąd może być wynikiem niepoprawnie zakodowanej składni. Składnia kodu może wydawać się poprawna, ale może spowodować błąd logiczny. Tego typu błędy mogą okazać się bardzo kosztownymi problemami, jeśli nie zostaną naprawione w odpowiednim czasie.
Błędy logiczne mogą również wynikać z błędnych danych, które zostały użyte przez poprawnie napisany program bez własnych wewnętrznych błędów logicznych. Jest to odpowiednik popularnego wyrażenia „śmieci wchodzą, śmieci wychodzą”. Jeżeli dane są nieprawidłowo wprowadzone do programu, nawet jeśli program jest wykonywany poprawnie, wynik jest błędem w porównaniu z tym, czego oczekiwano.
Jako przykład innego rodzaju błędu logicznego, przy znaku stopu, kierowca może zdecydować się skręcić w prawo lub skręcić w lewo. Jeśli kierowca skręci w prawo, gdy zamierzony cel znajduje się w lewo, zostanie to uznane za błąd logiczny. Technicznie kierowca prowadził pojazd poprawnie, ale efekt końcowy nie był taki, jak oczekiwano. Jak pokazano w tym przykładzie, błędy w logice nie ograniczają się do sfery programowania komputerowego. Błąd logiczny można również zakwalifikować jako błąd w odniesieniu do komunikacji.
W innym przykładzie, w którym występują błędy logiczne, procesory tekstu mogą czasami używać automatycznego sprawdzania pisowni; te moduły sprawdzania pisowni są znane z brakujących błędów logicznych. Na przykład rzeczownik „sprzedaż” może być błędnie przedstawiony przez rzeczownik „żagiel” w zdaniu. Każde słowo jest napisane poprawnie, brzmi poprawnie i może być poprawne gramatycznie w zdaniu, ale definicja jednego słowa może nie pasować do kontekstu danego zdania.