¿Qué es un error lógico?
Un error lógico es un error en el código fuente de un programa que da lugar a un comportamiento imprevisto y erróneo. Un error lógico se clasifica como un tipo de error en tiempo de ejecución que puede hacer que un programa produzca una salida incorrecta. También puede hacer que el programa se bloquee al ejecutarse.
Los errores lógicos no siempre son fáciles de reconocer inmediatamente. Esto se debe al hecho de que tales errores, a diferencia de los de sintaxis, son válidos cuando se consideran en el lenguaje, pero no producen el comportamiento previsto. Pueden producirse tanto en lenguajes interpretados como compilados.
Definición de error lógico
Los errores lógicos hacen que un programa funcione incorrectamente. Por ejemplo, en PHP, cuando se introduce incorrectamente «if ($i=1) {…}» en lugar de «if ($i==1) {….}», el primero significa «se convierte en» mientras que el segundo significa «es igual a».
La sentencia if incorrecta devolvería siempre TRUE como si asignara 1 a la variable $i. Sin embargo, en la versión correcta, la sentencia sólo devuelve TRUE cuando el valor de la variable $i es igual a 1.
La sintaxis en el caso incorrecto es perfectamente correcta según el lenguaje. Por tanto, el código se compilaría correctamente sin producir ningún error de sintaxis. Sin embargo, durante la ejecución del código, la salida resultante puede ser incorrecta, mostrando así que se ha producido un determinado error lógico.
Los errores lógicos suelen estar ocultos en el código fuente y normalmente pueden ser más difíciles de determinar y depurar, a diferencia de los errores de sintaxis que se reconocen en tiempo de compilación.