逻辑错误 (程序设计)

✍ dations ◷ 2025-06-09 22:40:28 #计算机错误,程序语言理论,程序设计小作品

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

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

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

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

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

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

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

参见

  • 语法错误
  • 差一错误

参考来源

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


相关

  • 心肌炎心肌炎(拉丁语:Myocarditis),也称为炎症性心肌病(Inflammatory Cardiomyopathy),是心肌的炎症。症状可表现为呼吸困难、胸口疼痛(英语:chest pain)、运动能力降低、心律不整等。发病时
  • 消防分队消防局,又称消防站、消拯局(消防拯救局),〈昔日俗称灭火局、救火队、水车馆〉,是一所放置消防设施及驻有消防员的建筑物。内里停放不同类型的消防车,作为救灾用途。部分地区的消
  • 庆尚南道庆尚南道(朝鲜语:경상남도/慶尙南道 Gyeongsang-nam do */?)是位于朝鲜半岛东南的一个韩国行政道,面积10,537.32平方公里,人口超340万,首府位于昌原市。:309伽倻文化是庆南地区重
  • 普洱市普洱市,旧称思茅,是中华人民共和国云南省下辖的地级市,位于云南省南部。市境东邻红河州、玉溪市,北界楚雄州、大理州,西连临沧市,西南与缅甸毗邻,南面与西双版纳州和老挝、越南两国
  • 阿根廷军事阿根廷军队包括陆军,海军和空军,有70,000名现役军人,比在1983年恢复为民主国家之前少了三分之一,阿根廷总统是武装部队总司令,国防部长则行使日常工作。阿根廷还有两只另外的部队
  • 世界卫生组织命名新型人类传染病的最佳实践世界卫生组织命名新型人类传染病的最佳实践(英语:World Health Organization Best Practices for the Naming of New Human Infectious Diseases),或称新型人类传染病命名最佳实
  • 静电力显微镜静电力显微镜(英语:Electrostatic Force Microscopy,简称EFM)是一种利用测量探针与样品的静电相互作用,来表征样品表面静电势能,电荷分布以及电荷输运的扫描探针显微镜。静电力显
  • 不送气硬颚搭嘴音不送气硬颚搭嘴音(Tenuis palatal click)是一种主要出现于南非的辅音。其中,术语“不送气”(tenuis)又称“无声爆破音”,特指清音、不送气(unaspirated)、未颚音化、未声门化(英语:Glo
  • 1,4-萘醌1,4-萘醌,或简称萘醌,是一种有机化合物。它是黄色的三斜晶体,具有与对苯醌相似的气味。它在冷水中难溶,在石油醚中微溶,在大多数有机溶剂中易溶。在碱性条件下它呈红棕色。由于它
  • 白鹿镇 (彭州市)白鹿镇,是中华人民共和国四川省成都市彭州市下辖的一个乡镇级行政单位。2019年12月,将通济镇思文场社区、官田村、姚家村、天生桥村、梓柏村、双杨村、涧安村所属行政区域划归