논리 오류

Logic error

컴퓨터 프로그래밍에서 논리 오류는 프로그램이 잘못 작동하게 하지만 비정상적으로 종료(또는 충돌)되지 않게 하는 버그다. 논리 오류는 의도하지 않거나 원하지 않는 출력이나 다른 행동을 발생시키지만, 즉시 그렇게 인식되지는 않을 수 있다.

논리 오류는 컴파일된 언어와 해석된 언어 모두에서 발생한다. 구문 오류가 있는 프로그램과 달리 논리 오류가 있는 프로그램은 의도한 대로 동작하지는 않지만 언어에서 유효한 프로그램이다. 정적인 분석이 때로는 오류를 발견할 수 있지만, 논리 오류가 존재하는 유일한 단서는 잘못된 해결책의 생산이다.

논리 오류 디버깅 중

이러한 유형의 오류를 찾는 방법 중 하나는 코드에서 오류의 위치를 결정하기 위해 프로그램의 변수를 파일이나 화면에 내보내는 것이다. 이것이 모든 경우에, 를 들어 서브루틴을 잘못 부를 때, 이것이 효과가 있지는 않겠지만, 프로그램이 잘못된 수학 계산의 잘못된 결과를 사용한다면 문제를 찾는 가장 쉬운 방법이다.

예제 기능은 두 숫자의 평균을 계산하기 위해 C에서 논리 오류를 포함한다. 계산에 괄호가 없어 컴파일하고 실행하지만 연산자 우선 순위로 인해 예상 답을 주지 않는다(추가하기 전에 구획을 평가한다).

둥둥 뜨다 평균의(둥둥 뜨다 a, 둥둥 뜨다 b) {     돌아오다 a + b / 2;  // (a + b) / 2여야 함 } 

참고 항목