FOR循环语句中的IF语句?

时间:2013-11-10 02:47:09

标签: c++ if-statement for-loop

我想把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 = elevator1CurrentStatus.floorNumber;(if(boundary == 9)iboundary;); i + = i + countDirection)

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

2 个答案:

答案 0 :(得分:7)

使用三元运算符:

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

//Code Here 

}

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

答案 1 :(得分: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++) {

        }

    }