Obtenez chaque centième valeur dans une boucle

Y at-il un moyen de rendre ce nettoyeur et de ne pas utiliser la valeur tempvalue comme je l’ai fait ici?


UPDATE le code avait un bug de logique et n’a pas montré ce que je faisais. Voici ce que je fais:

var loopTempValue = noOfPackets / 100; for(i=0; i < noOfPackets; i++) { \\DoStuff if (i == loopTempValue) { loopTempValue = loopTempValue + (noOfPackets / 100); UploadBackGroundWorker.ReportProgress(pross); } } 

MISE À JOUR Finale

C’est comme ça que ça se fixe après les commentaires, merci les gars.

 if (i % (noOfPackets / 100) == 0 && i != 0) { UploadBackGroundWorker.ReportProgress(pross); } 

 if (i % 100 == 0 && i != 0) { //YOUR CODE } 

Le module est fantastique pour les contrôles comme celui-ci.

Plus d’informations sur Modulus – http://www.vias.org/cppcourse/chap04_01.html

UPDATE: J’ai ajouté && i != 0 pour que le cas 0 soit vrai.

Si vous voulez utiliser la valeur de temp au lieu du code 100, cela pourrait être une solution:

 if (i % tempvalue == 0 && i != 0) { //YOUR CODE } 

Vous voulez dire que vous voulez que la condition soit déclenchée 100 fois pendant la boucle, c’est-à-dire à chaque 36e itération? (Dans votre code d’origine, vous doublez la valeur de temp à chaque fois; le déclenchement ne se produit donc que sept fois au cours de la boucle.)

Vous pouvez utiliser l’opérateur modulo pour vérifier cela. Cela déclenchera la condition à la dernière de chaque série de 36 itérations:

 for(i=0; i < 3600; i++) { \\DoStuff if(i % 36 == 35) { \\DoStuff } } 
 if( (i+1 % (tempvalue+1) == 0) { //DoStuff //tempvaule = tempvalue + tempvalue; }