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

Output every x iterations in a for-loop

本文关键字:迭代 输出 for 循环      更新时间:2023-10-16

所以我有这样的代码:

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;
}

但是没有成功。

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

注。间隔是随机的,不是每500个。

如果您希望每100次迭代发生一些事情,请使用模算子%:

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

你的代码是不正确的,因为你错误地使用了(不想要的)逗号操作符,所以你的测试相当于if (i==2000)

我认为您在每个if-condition之间缺少|| (OR)。比如

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

如果你提前知道年份:

const auto Years[] = {500, 742, 1000, 1234, 2000, 2015};
for (auto year : Years)
   std::cout << "The year is " << year << 'n';

我不是一个很好的c++程序员,但是执行任务的最直接的方法似乎是:

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