Logikfehler - Logic error
In der Computerprogrammierung ist ein logischer Fehler ein Fehler in einem Programm, der dazu führt, dass es falsch funktioniert, aber nicht abnormal beendet (oder abstürzt ). Ein logischer Fehler erzeugt eine unbeabsichtigte oder unerwünschte Ausgabe oder ein anderes Verhalten, obwohl er möglicherweise nicht sofort als solcher erkannt wird.
Logikfehler treten sowohl in kompilierten als auch in interpretierten Sprachen auf. Im Gegensatz zu einem Programm mit einem Syntaxfehler ist ein Programm mit einem Logikfehler ein gültiges Programm in der Sprache, obwohl es sich nicht wie beabsichtigt verhält. Oftmals ist der einzige Hinweis auf die Existenz von logischen Fehlern die Produktion falscher Lösungen, obwohl die statische Analyse sie manchmal entdecken kann.
Debuggen von Logikfehlern
Eine Möglichkeit, diese Art von Fehler zu finden, besteht darin, die Variablen des Programms in eine Datei oder auf dem Bildschirm auszugeben, um die Position des Fehlers im Code zu bestimmen. Dies funktioniert zwar nicht in allen Fällen, zB beim Aufruf des falschen Unterprogramms , aber es ist der einfachste Weg, das Problem zu finden, wenn das Programm die falschen Ergebnisse einer schlechten mathematischen Berechnung verwendet .
Beispiele
Diese Beispielfunktion in C zur Berechnung des Durchschnitts zweier Zahlen enthält einen logischen Fehler. Es fehlen Klammern in der Berechnung, daher wird es kompiliert und ausgeführt, gibt jedoch aufgrund der Operatorpriorität nicht die erwartete Antwort (Division wird vor der Addition ausgewertet).
float average(float a, float b)
{
return a + b / 2; // should be (a + b) / 2
}
Siehe auch