考虑这段代码:
int f=0;
for(......)
{
..........
..........
//some code that does not alter f and z
..........
..........
double prev = 0; int z = 0; int y = 0;
for (int x = 0; x < c.timesteps; x++)
{
for (z=0; z < outs[i].campaigns.ToArray().Length; z++)
{
if (x == (outs[i].outage_dates[outs[i].campaigns[z]] * 7))
{
f = z;
break;
}
}
Console.WriteLine("\nF=" + f);
Console.Read();
for (y = f; y < outs[i].campaigns.ToArray().Length; y++)
{
.............
.............
.............
}
}
}
当我执行它时,z 的值随着 IF 条件变为真而变化。但 f 的值始终为零。当条件为真时,它应该更改为 z 的值。z 的值只能在离开最后一个循环并继续顶部循环时为零。
任何人都请告诉我这段代码有什么问题?我是否应用了一些错误的逻辑?
更新:
伙计们的问题已解决,一切正常。只是我无法看清楚。我在控制台上显示了每个变量的值(f 和 z 的值),我看到它工作正常。为它道歉。