Logiskt fel

I datorprogrammering är ett logiskt fel en bugg i ett program som gör att det fungerar felaktigt, men inte avslutas onormalt (eller kraschar ). Ett logiskt fel producerar oavsiktlig eller oönskad utdata eller annat beteende, även om det kanske inte omedelbart upptäcks som sådant.

Logiska fel förekommer i både kompilerade och tolkade språk. Till skillnad från ett program med ett syntaxfel är ett program med ett logiskt fel ett giltigt program i språket, även om det inte beter sig som det är tänkt. Ofta är den enda ledtråden till förekomsten av logiska fel produktionen av felaktiga lösningar, även om statisk analys ibland kan upptäcka dem.

Felsökning av logiska fel

Ett av sätten att hitta den här typen av fel är att lägga ut programmets variabler till en fil eller på skärmen för att fastställa felets plats i koden. Även om detta inte kommer att fungera i alla fall, till exempel när du anropar fel subrutin , är det det enklaste sättet att hitta problemet om programmet använder felaktiga resultat av en dålig matematisk beräkning .

Exempel

Denna exempelfunktion i C för att beräkna medelvärdet av två tal innehåller ett logiskt fel. Det saknas parenteser i beräkningen, så det kompileras och körs men ger inte det förväntade svaret på grund av operatörsföreträde (division utvärderas före addition).

    

           
 float  genomsnitt  (  float  a  ,  float  b  )  {  return  a  +  b  /  2  ;  // ska vara (a + b) / 2  } 

Se även