C# 使用嵌套在FOR中的IF语句中的break语句
考虑以下代码:C# 使用嵌套在FOR中的IF语句中的break语句,c#,c#-4.0,loops,for-loop,break,C#,C# 4.0,Loops,For Loop,Break,考虑以下代码: 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
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++)
{
.............
.............
.............
}
}
}
intf=0;
对于(……)
{
..........
..........
//一些不改变f和z的代码
..........
..........
双上一个=0;整数z=0;整数y=0;
对于(int x=0;x
当我执行它时,z的值随着IF条件变为true而变化。但是f的值总是零。当条件为真时,应将其更改为z值。z的值只能在离开最后一个循环并继续顶部循环时为零
谁能告诉我这个代码有什么问题吗?我是否应用了错误的逻辑
更新:
伙计们,问题解决了,一切正常。只是我看不清楚。我在控制台上显示了每个变量的值(f和z的值),我看到它工作正常。对此表示歉意
z的值只能在离开最后一个循环时为零,并且
继续顶部循环
否,在内部for循环的第一次迭代中,
z
的值将为0
,如果在第一次迭代中满足条件,则将分配f
,并将保持0
,直到剩余。或者,如果从未满足该条件,则f
将保留其旧值,该值再次为0
我建议在双精度上设置一个断点(按F9键)double prev=0代码>行并逐行遍历代码(F10)。是否已使用调试器检查行f=z代码>被击中过吗?我的意思是-你有没有随时检查条件是否为真的
?谢谢@GeorgeDuckett请查看我的更新问题谢谢@KonradGadzina请查看我的编辑