在for循环中输出每x次迭代

时间:2015-08-12 14:07:22

标签: c++ for-loop

所以我有这段代码:

for (int i=1000; i<2016; i++ )
{
    cout << "The year is " <<  i << endl;
}

但是,让我说我不希望这些代码打印所有这些年,但只是少数几个,让我们说它是500,1000,1500和2000年。

我尝试将其添加到代码中:

for (int i=1000; i<2016; i++ )

          if ( i == 500 , i == 1000 , i == 1500 , i == 2000){
    cout << "The year is " <<  i << endl;
}

但这没效果。

如何让代码只写我选择的年份?

P.S。间隔是随机的,而不是每500个。

4 个答案:

答案 0 :(得分:6)

如果您希望每100次迭代发生一次,请使用modulo运算符%

 for (int i=500; i<20000; i++) {
   if (i % 100 == 0) cout << i << endl;

您的代码不正确,因为您错误地使用comma operator(不想要它),因此您的测试等同于if (i==2000)

答案 1 :(得分:2)

我认为你在每个if条件之间缺少||(OR)。这就像是

if ( i == 500 || i == 1000 || i == 1500 || i == 2000)

答案 2 :(得分:1)

如果您事先了解这些年份:

const auto Years[] = {500, 742, 1000, 1234, 2000, 2015};

for (auto year : Years)
   std::cout << "The year is " << year << '\n';

答案 3 :(得分:0)

我不是一个C ++程序员,但看起来执行任务最直接的方式是:

for (int i = 500; i < 2016; i += 500) {
    cout << "The year is " << i << endl;
}