增加值 DOWN 不会打印出来

Incrimenting value DOWN wont print out

当我从 startVal 开始递增并以 incVal 递增至 endVal 结束时,打印 i 的结果时出现问题。

第一个 if 语句打印正确,我认为第二个 else if 语句应该非常相似,但是即使我的原始值;对于 EX:如果 startVal = 100endVal = 10incVal = -1,它会正确地跳转到 else if 语句(使用基本打印语句测试)但 for loop 似乎没有工作而不是像应该的那样打印出 i 的结果。

                if ((startVal < endVal)  &&  (incVal >= 1))
                {  
                     for (int i = startVal; i <= endVal; i += incVal)
                     {
                          System.out.println(i);
                     }

                }
                //  else if incrimenting down
                else if((startVal > endVal)  &&  (incVal <= -1))
                {
                     for (int i = startVal; i <= endVal; i -= incVal)
                     {
                          System.out.println(i);
                     }

                }

我在这里搞砸了什么愚蠢的事情吗?我在 for 循环中尝试了不同的方法来让我打印,但它没有以正确的方式工作..

这是因为你没有更改else子句中的for循环

for (int i = startVal; i >= endVal; i += incVal)
{
     System.out.println(i);
}

编辑:incValue 也应该增加,因为你有 i=-1,谢谢 mstbaum

你的问题是,如果 (startVal > endVal)true,你的 for 循环的第一次迭代将是 false 因为 int i = startVal; i <= endVal,它在第一次迭代中计算作为 startVal <= endval.

你也递减了一个负数(由你的 incVal <= -1 条件保证),这将导致 i 实际上是因为 i -= incVal.