Coding style 代码样式:在底部概括不同的子句?

Coding style 代码样式:在底部概括不同的子句?,coding-style,Coding Style,我有一个长if的for循环。。。否则,如果链在里面,每个案例里面都有一个子句。其中一些子句可能非常长,但有一些代码存在于其他子句中。我是否应该将代码中的代码放在与其他子句做相同事情的其他子句中,并将它们放在if。。。否则,如果chain和put在不使用此代码的子句中继续,或者我应该离开它吗 比如说, for { if (...) { // clause1: has some code that matches clause2, and others but not all

我有一个长if的for循环。。。否则,如果链在里面,每个案例里面都有一个子句。其中一些子句可能非常长,但有一些代码存在于其他子句中。我是否应该将代码中的代码放在与其他子句做相同事情的其他子句中,并将它们放在if。。。否则,如果chain和put在不使用此代码的子句中继续,或者我应该离开它吗

比如说,

for {

    if (...) {
       // clause1: has some code that matches clause2, and others but not all clauses
    } else if (...) {
        // clause2: has some code that matches clause1
    } else if (...) {
        // clause3: no code matches clause1
    }

    // maybe generalize clause1 and clause2 code and put here? and put a CONTINUE in the third clause/clauses that don't have this generalizable code?

}

我建议尽量简化代码,以便更容易理解。确切的意思将取决于你们条款的内容

例如,按照您的建议拉出代码可能是最清楚的,尽管组合使用
continue
和not-
continue
子句可能会让代码的读者感到困惑。另一种选择可能是将重复的代码提取到一个单独的方法中,并在必要时调用它,这样做的好处是可以给它一个有意义的名称


但是,您已经将此代码描述为一个
if
else if
long子句链接。这是一种代码味道,并表明可能需要更深入的重构才能使其可维护。例如,考虑使用.

如果这是一种特定语言,请添加可应用的标签。如果与特定语言无关,请添加,尽管您的可用选项可能因语言而异,因此这是一个与语言无关的问题,可能没有多大意义。大多数人说,您应该只在循环开始时使用
continue
语句,或者根本不使用它们。