嵌套 'while' 循环在完成后不循环回到外部 'for' 循环 (c++)

nested 'while' loop not looping back to outer 'for' loop after finishing (c++)

我需要找出任何给定数量的纳税人在任何年限内必须缴纳的税款 $。在程序开始时,输入# of taxpayers,并输入# of years。 while 循环执行得很好,第一次做了它应该做的事情;但是,它永远不会循环回到 'for' 循环并询问下一个纳税人的收入。 (我会注意到我必须这样做,因为它是 class)

for (int i = 1; i <= taxpayers; i++)
{
  while (year <= years)
    {      
     cout << "\n\nPlease enter payer " << i << "'s income for year " << year << ": $";
        cin >> income;
        
         if (income >= 0)
         {
           .......
                         
          year++;
         }
         
         else
         {
         cout << "\n    *Error*"
         cin.clear();
         cin.ignore(INT_MAX, '\n');
         continue;
         }
    }
}

it never loops back to the 'for' loop & asks for the next taxpayer's income

这是因为在 while 循环第一次完成后,year 已经赶上 years,以此类推 for 的后续迭代循环,year <= years 总是假的。

在进入 while 循环之前,您需要在 for 循环的每次迭代中将 year 重置回其起始值:

for (int i = 1; i <= taxpayers; i++)
{
    year = <your 1st year>; // <-- HERE
    while (year <= years)
    {      
        ...
    }
}