C++ FOR循环语句中的IF语句?
我想把if语句放在for循环检查参数中,但我不知道怎么做,我想这样做,这样我就不必重复我的代码,使其庞大、冗余和混乱 这就是我想做的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
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++) {
}
}