逻辑错误 (程序设计)

✍ dations ◷ 2025-08-16 07:07:32 #计算机错误,程序语言理论,程序设计小作品

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

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

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

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

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

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

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

参见

  • 语法错误
  • 差一错误

参考来源

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


相关

  • 芬兰芬兰国家图书馆(芬兰语:Kansalliskirjasto,瑞典语:Nationalbiblioteket)建于1640年,1827年由原址图尔库迁至赫尔辛基。该馆是芬兰重要的研究图书馆,亦是芬兰历史最悠久和规模最大的
  • 大阪市立大学大阪市立大学(日语:大阪市立大学/おおさかしりつだいがく Osaka City University),是位于日本大阪府大阪市的公立大学,简称市大(しだい・いちだい),是旧三商大之一,也是日本第一所“
  • 兰学家兰学指的是日本江户时代经荷兰人传入日本的学术、文化、技术的总称,字面意思为荷兰学术,引申可解释为西洋学术(简称洋学)。兰学是一种透过与出岛的荷人交流而由日本人发展而成的
  • 杀精剂杀精剂(英语:Spermicide)是可以破坏精子的生育控制物质,在性交前置入阴道内以避免怀孕。精剂本身是避孕器材,可以单独使用。不过只使用杀精剂避孕的失效率较其他避孕方法要高。一
  • 田寮坐标:22°52′50″N 120°21′38″E / 22.880473°N 120.360551°E / 22.880473; 120.360551田寮交流道为台湾国道三号的交流道,位于台湾高雄市田寮区近阿莲区,指标为369k。
  • 反比在数学中,比例是两个非零数量 y {\displaystyle y} 与 x {\displaystyle x} 之间的
  • 输送现象气体的输运现象(英语:transport phenomena)表示一类气体由非平衡态转为平衡态的过程,主要有以下几类 :处于非平衡态的热力学系统依据其偏离平衡态的程度一般可以分为近平衡态和远
  • 藏缅语系藏缅语族是分布于中国西南部、印度东北部、尼泊尔、巴基斯坦、不丹、缅甸、泰国、越南等地的一组语言。根据民族语网站2009年的资料,藏缅语族共包含有435种语言,其中主要的语
  • 最佳新演员台湾金马奖最佳新演员自2000年起每年由财团法人中华民国电影事业发展基金会颁发。
  • 张廷休1898年11月14日 张廷休(1898年11月14日-1961年11月24日),历史学家,教育家。1924年毕业于国立东南大学历史系。曾于国民政府教育部、河南省政府等处任职。1942年筹建国立贵州大学,