增加值 DOWN 不会打印出来
Incrimenting value DOWN wont print out
当我从 startVal
开始递增并以 incVal
递增至 endVal
结束时,打印 i
的结果时出现问题。
第一个 if 语句打印正确,我认为第二个 else if 语句应该非常相似,但是即使我的原始值;对于 EX:如果 startVal = 100
、endVal = 10
和 incVal = -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
.
当我从 startVal
开始递增并以 incVal
递增至 endVal
结束时,打印 i
的结果时出现问题。
第一个 if 语句打印正确,我认为第二个 else if 语句应该非常相似,但是即使我的原始值;对于 EX:如果 startVal = 100
、endVal = 10
和 incVal = -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
.