Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 证明价值下降不会打印出来_Java_Variables_If Statement_For Loop_Increment - Fatal编程技术网

Java 证明价值下降不会打印出来

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

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

第一个if语句打印正确,我认为第二个else-if语句应该相当相似,尽管我的原始值是;例如:如果startVal=100,endVal=10,incVal=-1,它跳转到else if语句,使用基本的print语句正确测试,但是for循环似乎不起作用,并且没有打印出我喜欢的结果

                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中有一个负数,我试图做-=。。。谢谢你给我看哈