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);
...