在某些时候,我想在创建数组时随机化是否反转数组。
我想到的第一件事是:
bool reverse = Random.value > 0.5f;
for (
int i = reverse ? steps - 1 : 0;
reverse ? i >= 0 : i < steps;
i += reverse ? -1 : +1
) {
rotateScript.angles.Add(angleRange[0] + stepAdder * i);
}
后来我意识到尽管多行,if/else 中的两个 for 循环会更具可读性。
但问题仍然存在:这些三元条件是每次迭代都执行一次,还是只执行一次?
最佳答案
正确,for
语句的第二个和第三个组件在每次迭代中都被评估。
这个:
for( x; y; z ) a;
相当于:
x;
while( y ) { a; z; }
因此 y
将比 z
多计算 1 次。
关于c# - for 循环参数是否执行每次迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29998498/