1

以下のコードのネストされたforループが実行されない理由を誰かに教えてもらえますか?つまり、「HelloWorld」は印刷されません。最初のループが実行されています。

 for (int i = 0; i < data.Length; i++)
        {// Loop through array


            **for (int j = data.Length - 1; j < i; j--)**
            {
                // Loop backwards through array
                **Console.WriteLine("Hello World");**
                double subTotal = 0;   //Keeps track of current subsequence's value
                subTotal += data[j];
                if (bbestTotal < subTotal)
                {
                    bbestTotal = subTotal;
                }
            }

        }
4

3 に答える 3

3

ループ状態のため、ループは実行されていません

j < i

falseループの最初にあります。

ループがj に進むので、条件を次のように変更する必要があります

for (int j = data.Length - 1 ; j >= i ; j--)
于 2013-03-07T18:35:14.303 に答える
2

内部ループ変数jは最上位の値で初期化され、それよりも大きいため、ループ条件部分の代わりにi使用します。j > ij < i

変化する

for (int j = data.Length - 1; j < i; j--)

for (int j = data.Length - 1; j > i; j--)
于 2013-03-07T18:34:40.653 に答える
0

この問題の根本的な原因は、j < iiのすべての値に対して2番目のforループの条件が常にfalseであるということです。したがって、2番目のforループの本体の中に入ることはありません。これで問題が解決するはずです。

for (int j = data.Length - 1; j > i; j--)
于 2013-03-07T18:42:34.373 に答える