1

谁能告诉我为什么下面代码中的嵌套 for 循环不执行?即不打印“Hello World”。第一个循环正在执行。

 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 > i而不是j < 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 < i对于 i 的所有值,第二个 for 循环的条件始终为 false。所以它永远不会进入第二个 for 循环的主体。这应该可以解决问题:

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