逻辑错误 (程序设计)

✍ dations ◷ 2025-09-10 14:45:36 #计算机错误,程序语言理论,程序设计小作品

在计算机程序设计中,逻辑错误(Logic error)(又叫语义错误)是程序错误的一种,这种错误会导致程序运行出错,但还不至于崩溃。逻辑错误会产生意外的输出或结果,但并不一定会立即被发现。

逻辑错误在编译语言和解释语言中都可能出现。与语法错误的程序不同的是,逻辑错误的程序从语法上来说是正确的一段程序,但其运行结果却与预期不符。逻辑错误的唯一表现就是错误的运行结果。

在 C++ 语言中,逻辑错误是一种特殊的异常()。

逻辑错误的原因可能是语句中出现了差错(比如公式写错)、算法中的错误,甚至是选择了错误的算法。此外还有一些其它原因,如类型转换错误、变量作用域错误、遗漏的代码段、对问题或需求的理解有误等等。

找出逻辑错误的办法之一,是将程序中的变量输出到文件或打印到屏幕,以定位错误所在。虽然这个办法不是所有情况下都适用,比如在调用了错误的子例程时就行不通,但是如果程序由于计算结果有误而出错,这种方法最容易找出问题。

以下用于计算平均数的C语言函数含有逻辑错误。代码中缺少了一对括号,因此程序虽然能够通过编译并运行,但由于运算符优先级(先乘除,后加减)的缘故,运算结果并不正确。

int average(int a, int b){    return a + b / 2;     /* 应为 (a + b) / 2 */}

参见

  • 语法错误
  • 差一错误

参考来源

  1. ^ 了解您的 Bug:三种编程错误. Microsoft. 


相关

  • 中华民国环保署坐标:25°02′19″N 121°30′28″E / 25.03861°N 121.50778°E / 25.03861; 121.50778行政院环境保护署(简称环保署)是中华民国环境保护事务的最高主管机关,前身为1971年3月成
  • 埃厄战争埃塞俄比亚军事胜利厄立特里亚在国际法院获胜埃塞俄比亚-厄立特里亚战争发生于1998年5月至2000年6月。当事两国都属于世界上最贫穷国家之列,承受了非常大量的人员伤亡,最终边
  • 雪莉·奈特雪莉·奈特(英语:Shirley Knight,1936年7月5日-),是一名美国女演员。她曾出演超过50部电影、电视电影、电视剧、以及百老汇和非百老汇作品。她是演员工作室(英语:Actors Studio)的会
  • 多极神经元多极神经元是神经元的一种,负责支配多个树突和单一(通常且长)的轴突,容许来自其他神经元的大量信息的综合。其树突分支也可从细胞体出现。多极神经元也指派脑中的多数神经元。Ne
  • 美国50州纪念币50州纪念币(英语:50 State Quarters)是由美国发行的一系列25美分纪念硬币。是在1997年12月1日经过克林顿总统签署的105-124法案通过后而成事实。始于1999年,至2008年结束,预计为
  • 美利坚合众国宪法第五条宪法正文I ∙ II ∙ III ∙ IV ∙ V ∙ VI ∙ VII其它修正案 XI ∙ XII ∙ XIII ∙ XIV ∙ XV XVI ∙ XVII ∙ XVIII ∙ XIX ∙ XX XXI ∙ XXII ∙ XXIII ∙
  • DHL年度救援王奖MLB年度救援王(MLB Reliever Of The Year Award)2014年起代替 DHL年度救援王(DHL Presents the Delivery Man Of The Year Award)是美国职棒大联盟的奖项之一,曾由美国公司DHL所
  • 北野武北野武(日语:北野 武/きたの たけし  */?;1947年1月18日-)是日本搞笑艺人,东京都足立区岛根(日语:島根 (足立区))出身。原本与兼子二郎(日语:ビートきよし)以搞笑二人组“Two Beat(日语:
  • 马尔库斯·埃米利乌斯·雷必达马尔库斯·埃米利乌斯·雷必达(拉丁语:M·AEMILIVS·M·F·Q·N·LEPIDVS,约前89年~前13年或前12年),中文或译作“玛尔库斯·埃米里乌斯·列庇都斯”,古罗马贵族政治家,公元前43年
  • 上帝保佑拉脱维亚《上帝保祐拉脱维亚》(拉脱维亚语:Dievs, svētī Latviju!)是拉脱维亚的国歌。作曲人及作词人皆为卡尔利斯·包马尼斯(Kārlis Baumanis,1834年–1904年)。歌曲及歌词由卡尔利斯