逻辑错误 (程序设计)

✍ dations ◷ 2025-04-04 22:51:33 #计算机错误,程序语言理论,程序设计小作品

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

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

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

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

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

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

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

参见

  • 语法错误
  • 差一错误

参考来源

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


相关

  • 受格宾格(拉丁语:casus accusativus, 英语:accusative case,缩写: .mw-parser-output .smallcaps-all{font-variant:small-caps;text-transform:lowercase}.mw-parser-output .smallc
  • 物理光学物理光学(英语:physical optics),又称波动光学(wave optics)是光学的一个分支,研究的是关于干涉、衍射、偏振与其它在几何光学里射线近似不成立的种种现象。假设光波的波长超小于仪
  • 氧8固氧、固态氧形成于正常大气压的54.36K(-218.79°C)以下。固态的氧气由于吸收红色光,像液氧一样,是浅蓝色透明物质。 氧分子因它在分子磁化(molecular magnetization)上与晶体结构
  • 行星系统行星系(英语:planetary system),又称行星系统,是围绕某恒星公转的各种天体的集合,其中包括行星、卫星、小行星、流星体、彗星和宇宙尘埃。太阳和它的行星系统包括地球在内,合称为太
  • 普罗科菲耶夫谢尔盖·谢尔盖耶维奇·普罗科菲耶夫 (俄语:Сергей Сергеевич Прокофьев;,1891年4月23日-1953年3月5日),是一位苏联作曲家。他曾被授予“斯大林奖”,死后被
  • 阿丘利塔县阿丘利塔县(英语:Archuleta County, Colorado)是美国科罗拉多州南部的一个县,南邻新墨西哥州。面积3,511平方公里。根据美国2000年人口普查,共有人口9,898人,2005年人口为11,500人
  • 劳氏鳄目劳氏鳄类(学名:Rauisuchia)是对一群所知有限的主龙类集合群的非正式总称,是生存于三叠纪的掠食动物,大多数体型很大,全长通常有4至6米。原先劳氏鳄类被认为与引鳄科有接近亲缘关系
  • 伊瓦尔·贾埃弗伊瓦尔·贾埃弗(挪威语:Ivar Giæver,1929年4月5日-),挪威物理学家。出生于挪威卑尔根,他在通用电气研究的时候,用实验证明了超导体的能带,验证了超导体BCS理论。因此,他与江崎玲于奈
  • 黑边黑边(英语:Letterboxing),为屏幕中显示的内容除了正常影像外,两侧或四周多出来的未显示区域。因该区域为黑色,故称之为黑边。黑边的产生是由于原始影像与屏幕的尺寸规格不同所造成
  • 赫柏茨·希库尔斯赫柏茨·希库尔斯(拉脱维亚语:Herberts Cukurs,1900年5月17日-1965年2月23日)是一名拉脱维亚飞行员与阿拉斯突击队成员,曾参与对拉脱维亚犹太人(英语:Latvian Jews)的大屠杀。尽管大