逻辑错误 (程序设计)

✍ dations ◷ 2025-02-23 21:46:09 #计算机错误,程序语言理论,程序设计小作品

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

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

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

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

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

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

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

参见

  • 语法错误
  • 差一错误

参考来源

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


相关

  • 氨基水解酶氨基水解酶(英语:aminohydrolase)是一种作用于氨基的水解酶。氨基水解酶类被分类在EC编号3.5.4之下。EC 1.1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/21/22  · 2
  • 玫瑰少年梦《玫瑰少年梦》(法语:Ma vie en rose,台湾译《玫瑰少年》)是1997年比利时导演亚兰·贝利执导的剧情片。
  • 永康市坐标:28°53′27″N 120°02′33″E / 28.89083°N 120.04250°E / 28.89083; 120.04250永康市位于中华人民共和国浙江省中部。三国吴时置永康县,1992年撤县设市。目前隶属于
  • 坪地坪地街道是中国广东省深圳市东北的一个街道,属深圳龙岗区管辖,北邻广东惠州市惠阳区、深惠公路及深惠高速公路横渡。
  • 弹丸弹丸(ball),又称弹头(bullet)、子弹、铅子,是由铳器或投石绳发射出来的动能抛射物。普通的弹丸不会含有爆炸物质,直接以冲击穿透的方式杀伤目标。中国最早由火器射出的弹丸可能是由
  • 张爱莎张爱莎(Ailsa Chang)是一名美国记者。她目前正在国家公共广播电台(NPR)上《Planet Money》和《All Things Considered》做广播。她曾在美国国会为NPR报道。相继获得斯坦福大学的
  • 空中客车A350 XWB空中客车A350 XWB(Airbus A350 XWB),是欧洲飞机制造商空中客车所研发的长程双发动机宽体客机系列。A350是最先在机身与机翼同时使用碳纤维强化聚合物的民航飞机,亦是目前全球越
  • 参谋长委员会参谋长委员会(英语:Chiefs of Staff Committee)由英国军队中的高级军官构成,为军事物资、备战、指挥等相关事务提供指导意见。该委员会的主席是国防参谋长(同时也是首席军职人员),
  • 又来了旧态复萌(Relapse)是美国嘻哈歌手艾米纳姆的第六张音乐专辑,这张专辑是阿姆在2004年后,相隔四年发表的第一张专辑,这张专辑同时也代表了他的事业中断和滥药间题结束,重新制作专
  • 保守民主保守民主是土耳其右派执政党正义与发展党提出来的一种政治理念。但是随着正发党的右翼奥斯曼主义倾向日发凸显,该思想逐渐淡化并被新奥斯曼主义取而代之。