For-Statement,每1000次演练,做点什么

时间:2012-07-17 08:25:59

标签: c# for-loop

我正在穿过Forloop 100'000次。 (这个数字可以多样化)

每1000次我想做一些特别的事情,我在其他演练中不做的事情。

类似的东西:

for (int i = 0; i < 100000; i++)
{
    doTasks(); //Normal
    if(i == 1000 || i == 2000 || i == 3000 || i == 4000 ) //and so on...
    {
       doSomethingElse(); //Special, For every 1000th walkthrough
    }
}

完成该任务的最有效方法是什么?

6 个答案:

答案 0 :(得分:12)

尝试使用模运算符。不确定C#语法,但是类似于:

if(i % 1000 == 0)
{
    //Do something
}

答案 1 :(得分:5)

if (i != 0 && i % 1000 == 0)

这意味着如果i mod 1000为0(所以1000,2000,3000,...)但不是i == 0

答案 2 :(得分:4)

if (i != 0 && i % 1000 == 0) {
  doSomethingElse();
}

%是模数运算符,返回除法运算的余数。如果余数为零,那么你有1000的倍数。但是你需要排除0,因为0也可以被1000整除。

答案 3 :(得分:2)

使用模运算符:

if (i % 1000 == 0) {
 // do something...

会做你想要的。

它除以给定的参数(在本例中为1000)并给出余数。在这种情况下,您对0的余数感兴趣。请参阅模运算符的文档here

答案 4 :(得分:2)

真的在这里挑剔,并可能回答死马,但这样做:

if(i%1000 == 999) ...

而不是比较0并避免第一次迭代。

答案 5 :(得分:1)