For-Statement,每1000次演练,做点什么
我正在穿过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 } }
完成这项任务最有效的方法是什么?
尝试使用模运算符。 不确定C#语法,但是类似于:
if(i % 1000 == 0) { //Do something }
if (i != 0 && i % 1000 == 0)
这意味着如果i mod 1000为0(所以1000,2000,3000,…),但不是i == 0
if (i != 0 && i % 1000 == 0) { doSomethingElse(); }
%
是模数运算符,返回除法运算的余数。 如果余数为零,那么你有1000的倍数。但是你需要特别排除0,因为0也可以被1000整除。
使用模运算符:
if (i % 1000 == 0) { // do something...
会做你想做的。
它除以给定的参数(在本例中为1000)并给出余数。 在这种情况下,您对0的余数感兴趣。请参阅此处的模运算符的doc
我真的在这里挑剔,并可能回答死马,但这样做:
if(i%1000 == 999) ...
而不是比较0并避免第一次迭代。