我在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
循环吗?
答案 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) {
}