我可以在`for`循环中以编程方式设置条件吗?

时间:2014-04-09 03:20:11

标签: ios for-loop conditional-statements

我在for循环中有大量代码。我想基于布尔变量countUp执行0到9递增或9到0递减的循环。设置初始条件和增量很容易......但是如何以编程方式设置条件(操作符是问题)?

int startValue = _countUp ? 0 : 9;
int increment = _countUp ? 1 : -1;
// How do I define a condition ??? so that the following single line of code will work:

for (int i = startValue; ???; i = i + increment) {
  ...

我尝试了一个NSString,当然没有用。我知道有一些解决方案将两个循环放在if-else语句中,即将循环代码定义为函数,并使用升序或降序for循环调用它。但是,有一种优雅的方式来以编程方式设置for循环吗?

3 个答案:

答案 0 :(得分:4)

一种方法是添加endValue

int startValue = _countUp ? 0 : 9;
int increment = _countUp ? 1 : -1;
int endValue = _countUp ? 9 : 0;

for (int i = startValue; i != endValue; i = i + increment) {

}

或eaiser

for (int i = 0; i < 10; i++) {
    int value = _countUp ? i : 9 - i;
    // use value
}

答案 1 :(得分:1)

如何使用三元运算符?它简洁易读,应该可以解决问题。

for(int i = startValue; _countUp ? (i <= 9) : (i >=0); i = i + increment) {

答案 2 :(得分:0)

我只是在for循环中实现三元运算符。

for (int i = _countUp ? 0 : 9; i != _countUp ? 9 : 0; i += _countUp ? 1 : -1) {

}