-1

次のコードを検討してください。

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++)
        {
            .............

            .............

            .............
        }
    }
}

実行すると、IF条件が真になってzの値が変化しています。しかし、f の値は常に 0 です。条件が真の場合、z の値に変更する必要があります。z の値がゼロになるのは、最後のループを終了して一番上のループを継続するときだけです。

このコードの何が問題なのか教えてください。間違ったロジックを適用していますか?

アップデート:

みんなの問題は解決され、すべてが正常に機能していました。はっきりと見えなかっただけです。コンソールにすべての変数の値 (f と z の値) を表示したところ、正常に機能していることがわかりました。申し訳ありません。

4

1 に答える 1