Java 循环中每百万分之一次只执行一条语句

Java 循环中每百万分之一次只执行一条语句,java,while-loop,Java,While Loop,我有一个while循环,它运行大约1000万次,每次递增一个变量天。我想程序只打印一行时,一百万天已经过去了,即 100万天过去了 200万天过去了 循环完成 到目前为止,我有以下代码: double dayMill; //outside the loop ... dayMill = day/1000000; //every runthrough of the loop 我在考虑将if语句用于 if( (int)dayMill == dayMill){} 因为当day=1000000,那么

我有一个while循环,它运行大约1000万次,每次递增一个变量天。我想程序只打印一行时,一百万天已经过去了,即

100万天过去了

200万天过去了

循环完成

到目前为止,我有以下代码:

double dayMill; //outside the loop
...
dayMill = day/1000000; //every runthrough of the loop
我在考虑将if语句用于

if( (int)dayMill == dayMill){}
因为当day=1000000,那么daymill=1,所以转换为int,它也是1。然而,这不起作用。它打印了0.0百万天。。。1.0之前的很多很多。。。。。永远不要只为我想要的每百万的一行

if(dayMill % 1000000 == 0)
{
    //print statement
}
这就是如果你把dayMill设为int。如果你增加1,为什么它是一个double?我想我不太明白你到底在做什么。

怎么样

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 ...
或者

我要做的是:

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

实际上,只需在dayMill=day/1000000之后添加一个.0就行了:但这是可行的too@Killerpixler在我看来,模运算符更有意义,因为这是它的主要目的,而除法使其目的更加模糊;
int count = 0;
int times = 1_000_000;
while (true) {
    ....
    if ( ++count % times == 0 ) {
       ...
    }
}