我正在寻找编写以下代码的最佳方法。
if (condition == true)
for (i = 0; i < 200; i++)
{
/// 600 lines of code
}
else
for (i = 200; i > 0; i--)
{
/// same 600 lines of code as in above condition check
}
到目前为止,我在两个循环中复制了相同的代码。但是,有没有一种方法可以检查代码,然后使代码仅出现一次?唯一取决于条件检查的是循环的工作方式。我必须根据条件检查在循环中前进或后退,并且不想将相同的600行代码粘贴两次。我用C编写。
您可以仅根据条件更改循环变量,而不必让两个循环的循环变量略有不同,因此它可以有效地从0递增到200,或者从200递减到0。
for (iteration = 0; iteration < max; iteration++)
{
index = (condition == true) ? iteration : max-iteration;
// 600 lines of code, using index
}
您可能要对此添加评论,以便其他人(以及您以后)知道该怎么做。
但是,即使那样,您仍可能应该尝试将这600行代码重构为一个单独的方法-或更确切地说,是几个单独的方法,每个方法都处理这600行的一个方面。根据经验:i)每当您重复执行代码时,无论是600行还是10行,都应尝试使其成为一种方法,并且ii)每当您有很长的代码块时,即使不重复很多时候,请尝试将其分为几种方法。这将使代码更具自描述性,并且更易于维护。
这可能并不总是容易的,例如,如果那600条线访问并修改了循环外声明的许多变量,那么再说一遍,这本身可能是设计中的另一个缺陷...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句