gpt4 book ai didi

if-statement - 基于条件检查的for循环

转载 作者:行者123 更新时间:2023-12-04 04:17:02 26 4
gpt4 key购买 nike

我正在寻找编写以下代码的最佳方法。

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 行访问和修改循环外声明的许多变量,但话又说回来,这本身可能是设计中的另一个缺陷......

关于if-statement - 基于条件检查的for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24868208/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com