0

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

100万天过去了

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。但是,这不起作用。它打印了 00 万天......很多直到 1.0 很多......我想要的每一百万都不仅仅是一行

4

6 回答 6

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

也就是说,如果您将 dayMill 设为 int。如果你加一,为什么它是双倍的?我想我真的不明白你在做什么。

于 2012-11-02T15:04:16.987 回答
1

怎么样

if (day % 1000000 == 0) {...}
于 2012-11-02T15:04:35.030 回答
1

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

if (index % 1000000 == 0)
{
    // do your magic
}
于 2012-11-02T15:05:26.877 回答
0

您可以使用模数

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

}

印刷

1000000
2000000
3000000
4000000
5000000
6000000
7000000
... etc ...
于 2012-11-02T15:05:31.800 回答
0

或者....

i++;
if(i == 1000000) {
    print stuff;
    i=0;
}
于 2012-11-02T15:07:16.707 回答
0

我会做的是:

int count = 0;
int times = 1_000_000;
while (true) {
    ....
    if ( ++count % times == 0 ) {
       ...
    }
}
于 2012-11-02T15:07:34.960 回答