Logická chyba
Logická chyba (nebo chyba v logice) je chyba ve zdrojovém kódu programu, která vede k nesprávnému nebo neočekávanému chování. Jedná se o typ chyby za běhu, která může jednoduše vytvořit nesprávný výstup nebo může způsobit zhroucení programu během jeho běhu.
Logické chyby může způsobit mnoho různých typů programátorských chyb. Například přiřazení hodnoty nesprávné proměnné může způsobit řadu neočekávaných chyb programu. Také vynásobení dvou čísel namísto jejich sečtení může vést k nežádoucím výsledkům. Dokonce i malé překlepy, které nezpůsobí syntaktické chyby, mohou způsobit logické chyby. V následujícím příkladu kódu v jazyce PHP může příkaz if způsobit logickou chybu, protože jeden znak rovnosti (=) by měl být dvojitým znakem rovnosti (==).
Nesprávně: if ($i=1) { ... }
Správně: if ($i==1) { ... }
V jazyce PHP znamená „==“ „je rovno“, zatímco „=“ znamená „stává se“. Nesprávný příkaz if proto vždy vrátí hodnotu TRUE, protože přiřazení hodnoty 1 proměnné $i vrátí hodnotu TRUE. Ve správném kódu příkaz if vrátí hodnotu TRUE pouze tehdy, když se $i rovná 1. Protože je však syntaxe nesprávného kódu přípustná, nevytvoří syntaktickou chybu a kód se úspěšně zkompiluje. Logická chyba může být odhalena až během běhu programu. Protože jsou logické chyby často skryté ve zdrojovém kódu, jejich hledání a ladění bývá obvykle obtížnější než hledání syntaktických chyb.
Otestujte své znalosti