C++ FOR循环语句中的IF语句?

C++ FOR循环语句中的IF语句?,c++,if-statement,for-loop,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 } for(int i=elevator1CurrentStatus.floorNumb

我想把if语句放在for循环检查参数中,但我不知道怎么做,我想这样做,这样我就不必重复我的代码,使其庞大、冗余和混乱

这就是我想做的

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

//Code Here 

}
for(int i=elevator1CurrentStatus.floorNumber;if(boundary==9)i边界;i+=i+countDirection){
//代码在这里
}
我将如何实现这一点?基本上,我希望test语句说明是向上计数还是向下计数取决于一个变量,并根据该变量选择哪个方向。计数方向较早实现,并且为+1或-1。 对于(int i=elevator1CurrentStatus.floorNumber;(如果(boundary==9)iboundary;);i+=i+countDirection)

for(int i=elevator1CurrentStatus.floorNumber;(if(boundary==9)i边界);i+=i+countDirection)
使用三元运算符:

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

//Code Here 

}
for(int i=elevator1CurrentStatus.floorNumber;
边界==9?i<边界:i>边界;
i+=i+计数方向){
//代码在这里
}

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

我建议将条件放在单独的函数中。这将使它更具可读性。尽量不要内联复杂的条件。此外,您现在可以使用任何多级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++) {

        }

    }
bool条件检查(int i,int边界){
如果(边界==9){
返回i<边界;
}否则{
返回i>边界;
}
}
int main(int argc,char*argv[]){
int边界=10;
int i=0;
for(i=0;条件检查(i,边界);i++){
}
}

你能解释一下你的IF条款吗?如果(boundary==9)iboundary,你想在
中做什么?这就是我要找的,谢谢!我会接受这个答案,当它让我知道你可能想在这里和那里添加一些括号,以提高可读性<代码>(边界==9)?(i<边界):(i>边界)。语法无效。这个问题是关于C++的。您的代码不是C++。@ SigTalk现在可以了:DNope。仍然不是C++。抓取一个C++编译器,试着编译它,看看会发生什么。我只是这么做,等我回来的时候,它已经被纠正了。我现在要丢脸死了:(
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++) {

        }

    }