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



我正在解决一个编程问题,你得到一个输入,你必须将 1 中的每个数字相加 - 例如输入到输入 为 5 :5+4+3+2+1 = 15。

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

    //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);

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

错误在

以前的答案中定义得很好,我只是要添加以下内容:

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

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

相关内容

最新更新