嵌套for循环不执行

时间:2013-03-07 18:33:04

标签: c# for-loop

有谁可以告诉我为什么下面代码中的嵌套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;
                }
            }

        }

3 个答案:

答案 0 :(得分:3)

循环未执行,因为循环条件

j < i

在循环开始时是false

由于您的循环提前j 向下,您应该将条件更改为

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

答案 1 :(得分:2)

内循环变量j初始化为top值,大于i,因此在循环条件部分使用j > i而不是j < i

更改

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

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

答案 2 :(得分:0)

问题的根本原因是对于i的所有值,第二个for循环的条件j < i总是为false。因此它永远不会进入第二个for循环体内。 这应该可以解决问题:

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