我有这个代码
for(int l = 1 ; l <= c ; l++, Sleep(500*min(l, 8))) //... <= 4000 msec
{
....
}
这是否等同于此?
for(int l = 1 ; l <= c ; l++) //... <= 4000 msec
{
Sleep(500*min(l, 8))
....
}
我想用 C# 重写原始代码。第二种方法是否与我在 C# 中采用的方法相同?
最佳答案
不,它们不等价。 for
循环的停止条件在以下 { }
block 中的代码之后执行。
所以等价于
for(int l = 1; l <= c; )
{
/*loop body*/
l++, Sleep(500 * min(l, 8));
}
表达式分隔符 (,
)可以替换为语句终止符;
。由于两者都是排序点,Sleep
接收到 l
的增量值。
关于c# - for中的多个语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35082501/