逻辑错误 (程序设计)

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

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

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

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

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

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

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

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

参见

  • 语法错误
  • 差一错误

参考来源

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


相关

  • 伙友骑兵伙友骑兵(古希腊语:ἑταῖροι;hetairoi),又译伙伴骑兵或马其顿禁卫骑兵,伙友骑兵是马其顿军队中的精锐骑兵,源于马其顿王国的国王骑兵卫队,在腓力二世的扩充改良下,成为马其顿军
  • 主题标目权威控制或规范控制,是图书馆信息学中一个整理图书馆目录(英语:Library catalog)和目录信息的方式,使同一主题使用相同、唯一的标题。这些标题贯彻整个目录库并且能与其他交叉引
  • 禁忌禁忌或忌讳是指在一些特定的文化或是在生活起居中被禁止的行为和思想;如果被禁止的是某些词汇或物品的话,则称为禁忌语、禁忌物或禁忌品。有关的行为或词汇之所以会被禁止,可能
  • 保留字保留字(英语:Reserved word),有时也叫关键字(keyword),是编程语言中的一类语法结构。在特定的编程语言里,这些保留字具有较为特殊的意义,并且在语言的格式说明里被预先定义。通常,保留
  • 孟卡拉孟卡拉(英语:Menkaure),又译门卡拉,是古埃及第四王朝的法老,大约在前26世纪间在位约18年。孟卡拉这名字的意思是“拉神的力量永远存在”(这是一个拉名)。按希腊人希罗多德的说法,他是
  • 火耗归公耗羡归公又称火耗归公,中国历史上,地方官向民众征收税金时,会以运送与镕铸等耗损为由,多征银两,更称为火耗或耗羡,但耗羡的范围大于火耗,耗羡还包含雀鼠耗等。征纳运京的米谷,被雀鼠
  • 相对购买力指标购买力平价(英语:Purchasing Power Parity,缩写PPP),是一种根据各国不同的价格水平计算出来的货币之间的等值系数,使我们能够在经济学上对各国的国内生产总值进行合理比较,这种理论
  • 社会民主社会民主主义(Social democracy)是一种支持通过在自由民主体制和资本主义经济体系下,通过经济干预和社会干预的手段促进社会正义的意识形态。社会民主主义支持代议制和参与民主
  • EPSEPS(英文全称:Encapsulated PostScript)是PostScript的一种延伸类型。多用于单镜反光相机。EPS(Encapsulated PostScript)是目前系统中功能最强的一种图档格式,向量及位图皆可包容
  • 李博乂李博乂(?-671年),唐朝宗室、官员。生年没有记载。为唐高祖李渊之侄子,父李湛(李渊二哥),博乂即李湛第二子。武德元年(618年)受封陇西王。李博乂有妓妾数百人,皆衣罗绮,骄侈无比。与其弟