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