只在循环中每百万次执行一次语句

时间:2012-11-02 15:02:39

标签: java while-loop

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

已经过了100万天

已经过了200万天

...

完成循环

到目前为止,我有代码:

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

我正在考虑将if语句与

之类的东西一起使用
if( (int)dayMill == dayMill){}

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

6 个答案:

答案 0 :(得分:6)

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

那就是你将dayMill变为int。如果你加1,为什么它是双倍?我想我真的不明白你在做什么。

答案 1 :(得分:1)

怎么样

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

您可以使用模数

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

}

打印

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

答案 4 :(得分:0)

或者....

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

答案 5 :(得分:0)

我要做的是:

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