-1
考虑以下代码:工作在IF语句嵌套在
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的值),我看到它的工作正常。为此道歉。
我建议在'双上一页= 0把断点(按F9); ...'线和步进通过代码逐行(F10)。 –
你用调试器检查了'f = z;'这行是否被命中?我的意思是 - 你是否在任何时候检查了条件是否为“真”? –
谢谢@GeorgeDuckett请参阅我的更新问题 –