这两个循环不应该产生相同的结果吗?

时间:2019-01-04 22:19:09

标签: java

我正在解决一个编程问题,在该问题中您需要输入,并且必须将1到输入中的每个数字相加-例如,假设输入  是5:5 + 4 + 3 + 2 + 1 = 15。

为解决这个问题,我在下面尝试了这两个for循环。

    //This loop worked for most inputs
     int input = 12 ;
     for(int i = input - 1; i > 0; i--) {
      input += i;
     }          
       System.out.println(input);

      //This just produced a negative number
       int input2 = 12;
       for(int i = 1; i < input2;i++){
           input2  += i;

       }
       System.out.println(input2);

尽管看起来它们应该产生相同的结果,但是只有一个循环有效,任何人都可以解释吗?

1 个答案:

答案 0 :(得分:0)

错误在先前的答案中已经很好地定义了,我将添加以下内容:

这也可以使用ArrayList并用循环将其成员求和来解决,但这是一个过大的选择。 这使您能够删除/更改使用Java Iterator类迭代的列表的值。 正如我之前说过的,这种解决方案对于这种任务来说是过大的,但是研究可能会很有趣。

更多Java迭代器:https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html