-1
위한 중첩 된 다음 IF 조건이 참이되고있다으로 작업은 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의 값은 변화하고있다. 그러나 f의 값은 항상 0입니다. 조건이 참일 때 z의 값으로 변경해야합니다. z의 값은 마지막 루프를 떠나고 최상위 루프를 계속할 때만 0이 될 수 있습니다.누구든지이 코드가 잘못되었습니다. 잘못된 논리를 적용하고 있습니까?
업데이트 :
얘들 문제가 해결되고 모든 것이 잘 작동했다. 그냥 분명히 볼 수 없었습니다. 나는 각 변수의 값을 콘솔 (f와 z의 값)에 표시했다. 그것을위한 사과.
이전 값을 유지합니다. 이중 사전 = 0; ...'줄에 중단 점 (F9 키 누름)을 배치하고 코드를 단계별로 실행하는 것이 좋습니다. 한 줄씩 (F10). –
'f = z;'행에 적중 한 적이 있는지 디버거로 확인 했습니까? 제 말은 ... 언제든지 그 조건이 '사실'인지 확인 했습니까? –
감사합니다. @GeorgeDuckett 내 업데이트 된 질문을 참조하십시오. –