嵌套for循环未执行
本文关键字:执行 循环 for 嵌套 | 更新日期: 2023-09-27 18:03:03
谁能告诉我为什么嵌套的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;
}
}
}
循环没有执行,因为循环条件
j < i
是在循环开始的false
。
由于循环将j
向下移动,您应该将条件更改为
for (int j = data.Length - 1 ; j >= i ; j--)
内循环变量j
初始化为顶值,它比i
大,所以在循环条件部分使用j > i
代替j < i
。
for (int j = data.Length - 1; j < i; j--)
for (int j = data.Length - 1; j > i; j--)
问题的根本原因是第二个for循环的条件j < i
对于i的所有值总是为假。所以它永远不会进入第二个for循环的主体。这应该可以解决这个问题:
for (int j = data.Length - 1; j > i; j--)