我有一个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很多......从来不只是每百万我想要的一行
答案 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 ) {
...
}
}