2

我想将 if 语句放在我的 for 循环检查参数中,但我不知道该怎么做,我想要这个,所以我不必复制我的代码并使其变得庞大、冗余和混乱。

这就是我想要做的

for( int i = elevator1CurrentStatus.floorNumber; if(boundary == 9) i<boundary else i>boundary ;i+=i+countDirection){

//Code Here 

}

我将如何实现这一点?基本上,我希望测试语句说明是向上计数还是向下计数以取决于变量并根据该变量选择哪个方向。计数方向较早实现,为 +1 或 -1。for(int i = lift1CurrentStatus.floorNumber; (if(boundary == 9) iboundary;) ;i+=i+countDirection)

 for( int i = elevator1CurrentStatus.floorNumber; (if(boundary == 9) i<boundary else i>boundary) ;i+=i+countDirection)
4

2 回答 2

7

使用三元运算符:

for(int i = elevator1CurrentStatus.floorNumber; 
    boundary == 9 ? i < boundary : i > boundary; 
    i += i + countDirection) {

//Code Here 

}

但我会将条件移动到单独的函数/方法以提高可读性。

于 2013-11-10T02:51:38.307 回答
2

我建议将条件放在单独的函数中。它将使其更具可读性。尽量不要内联复杂的条件。此外,您现在可以使用任何多级 if-else、switch case 或任何其他返回布尔值的操作。

这是您可以执行的操作:

bool conditionCheck(int i, int boundary) {
        if (boundary == 9) {
            return i < boundary;
        } else {
            return i > boundary;
        }
    }

int main(int argc, char *argv[]) {
        int boundary = 10;
        int i = 0;
        for (i = 0; conditionCheck(i, boundary); i++) {

        }

    }
于 2013-11-10T02:55:54.783 回答