C# 为C中的每个循环调用具有新参数值的方法#

C# 为C中的每个循环调用具有新参数值的方法#,c#,asp.net-mvc,loops,C#,Asp.net Mvc,Loops,但这不起作用,因为当循环重新开始时,guess将为0.01,guess2将再次为0.03,而不是我想要的 有没有可能对循环中的每一轮进行guess=guess2和guess2=calc3.兴趣分析 var count = finalList.Count() - 3; if (finalList[count].PresentValue != FV) { guess = guess2; g

但这不起作用,因为当循环重新开始时,
guess
将为0.01,
guess2
将再次为0.03,而不是我想要的

有没有可能对循环中的每一轮进行
guess=guess2
guess2=calc3.兴趣分析

var count = finalList.Count() - 3;
            if (finalList[count].PresentValue != FV)
            {
                guess = guess2;
                guess2 = calc3.InterestRate;
                continue;
            }
            else
                break;

PS:我建议您将计算代码从表单处理代码中分离出来,或者以其他方式使该方法更具可读性。目前很难看到逻辑,因为有这么多行代码,这可能是很难解决像这样的小问题的主要原因

根据以下内容更改代码:

if (i==0) { 
  guess = guess2;
  guess2 = calc3.InterestRate;
} else { 
  // you don't want to change the values after the first time through; do nothing
} 
。。。。
对于(int i=0;i<50;i++)
{
如果(i>0)
{
猜测=猜测2;
猜测2=calc3.InterestRate;
}
利率=抗肿瘤药(猜,猜2,形式);
...

你想只在第一轮使用0.01和0.03的值,然后在剩余的部分使用
guess=guess2
guess2=calc3.InterestRate
吗?是的,这正是我想要的,但是如果它是在secantInterestRate()中计算的,我该如何设置guess2=calc3.InterestRate?第一轮之后将执行
guess2=calc3.InterestRate
行(这是由
if(i>0)
执行的),因此您将有
calc3.InterestRate
行,因为该变量已在循环外声明。
if (i==0) { 
  guess = guess2;
  guess2 = calc3.InterestRate;
} else { 
  // you don't want to change the values after the first time through; do nothing
} 
....
for (int i = 0; i < 50; i++)
{
    if (i > 0)
    {
          guess = guess2;
          guess2 = calc3.InterestRate;
    }
    InterestRate = secantInterestRate(guess, guess2, form);
...