Java 证明价值下降不会打印出来
当我从startVal开始向下递增并以incVal的增量结束于endVal时,打印i的结果时出现问题 第一个if语句打印正确,我认为第二个else-if语句应该相当相似,尽管我的原始值是;例如:如果startVal=100,endVal=10,incVal=-1,它跳转到else if语句,使用基本的print语句正确测试,但是for循环似乎不起作用,并且没有打印出我喜欢的结果Java 证明价值下降不会打印出来,java,variables,if-statement,for-loop,increment,Java,Variables,If Statement,For Loop,Increment,当我从startVal开始向下递增并以incVal的增量结束于endVal时,打印i的结果时出现问题 第一个if语句打印正确,我认为第二个else-if语句应该相当相似,尽管我的原始值是;例如:如果startVal=100,endVal=10,incVal=-1,它跳转到else if语句,使用基本的print语句正确测试,但是for循环似乎不起作用,并且没有打印出我喜欢的结果 if ((startVal < endVal) && (in
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循环中尝试了不同的方法来让I打印,但效果不好。这是因为您没有在else子句中更改for循环
for (int i = startVal; i >= endVal; i += incVal)
{
System.out.println(i);
}
编辑:由于i=-1,incValue也应该增加,谢谢mstbaum您的问题是,如果startVal>endVal为true,那么for循环的第一次迭代将为false,因为int i=startVal;我不确定我是否理解else/if和循环的逻辑:如果startVal>endVal的计算结果为true,那么我被初始化为startVal,它大于endVal,因此我也应该是i+=incVal,因为incVal将是负数。谢谢大家@Ryan就在我认为我很愚蠢的时候,我意识到主要的问题是我在incVal中有一个负数,我试图做-=。。。谢谢你给我看哈