2

我知道已经有很多关于 break 和 continue 是否应该被认为是有害的讨论(底线或多或少取决于它;在某些情况下,它们提高了清晰度和可读性,但在其他情况下,它们没有)。

假设一个新项目正在开始开发,计划进行夜间构建,包括运行静态分析器。它是否应该成为项目编码指南的一部分,以避免(或强烈反对)使用continueand break,即使它会牺牲一点可读性并需要过多的缩进?我最感兴趣的是这如何应用于 C 代码。

本质上,使用这些控制运算符是否会使代码的静态分析显着复杂化,可能导致额外的假阴性,否则如果不使用 break 或 continue 会记录潜在错误?

(当然,证明任意程序正确性的完整静态分析是一个无法确定的命题,因此请保留对您所拥有的任何实践经验的回复,而不是理论上的不可能)

提前致谢!

4

1 回答 1

2

我的直接反应是,您必须跳过这些障碍以避免break并且continue可能会损害整个代码,并使静态分析(或其他任何事情)变得更加困难。

不过,这将取决于您正在处理的确切类型的代码。举个例子,如果你有一些真正最好作为switch语句实现的东西,那么禁止break基本上会迫使你使用嵌套if/ elses,这将使代码更难以正确分析,并且根据情况,将是也很可能对输出代码产生负面影响。

于 2012-05-17T15:23:01.307 回答