繁体   English   中英

每百万次循环仅执行一次语句

[英]only execute a statement every millionth time in a loop

我有一个while循环,每次运行大约一千万次,每次增加一个变量“ day”。 我希望程序仅在经过一百万天后打印行(即

一百万天过去了

200万天过去了

...

循环完成

到目前为止,我有代码:

double dayMill; //outside the loop
...
dayMill = day/1000000; //every runthrough of the loop

我正在考虑将if语句用于类似

if( (int)dayMill == dayMill){}

因为当day = 1,000,000时,daymill = 1,所以也将其转换为int,所以它也是1。 但是,这不起作用。 它打印了0.0百万天...很多直到1.0了很多.....从不只是我想要的每一百万的一行

if(dayMill % 1000000 == 0)
{
    //print statement
}

那就是如果您将dayMill设为int。 如果要加一,为什么会加倍? 我想我不太了解您在做什么。

怎么样

if (day % 1000000 == 0) {...}

无论您的循环索引是什么,

if (index % 1000000 == 0)
{
    // do your magic
}

您可以使用模数

for (long i = 1; ; i++) {
    if (i % 1000000 == 0)
        System.out.println(i);

}

版画

1000000
2000000
3000000
4000000
5000000
6000000
7000000
... etc ...

要么....

i++;
if(i == 1000000) {
    print stuff;
    i=0;
}

我要做的是:

int count = 0;
int times = 1_000_000;
while (true) {
    ....
    if ( ++count % times == 0 ) {
       ...
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM