Java 方法根据测试逻辑获取 int 的总和

Java method to get sum of int based on test logic

我是新手java,我在下面写了一个方法。我试图了解如何满足测试器方法。有没有办法通过 while 循环获得正确的逻辑? 我声明总和 = 0,当总和小于 i 时,递增总和并循环直到它达到 i 然后 return 总和(或者这就是我认为我正在尝试做的)以满足测试.当我查看 1) 的 junit 错误消息时,它说它给我 10,但期望 55,2) 说我得到 49,但期望 1225。3) 满意。我在这里做错了什么?是否可以使用 if 语句或 while 循环执行此方法?

 public int sumOfInts(int i) {
        int sum = 0;
        
        while(sum < i)
           ++sum;
        return sum;
        
    }
   public void testSumOfInts2() {
                   int sumOfInts = math.sumOfInts(10);
                   assertEquals(55, sumOfInts);

     public void testSumOfInts3() {
                int sumOfInts = math.sumOfInts(49);
                assertEquals(1225, sumOfInts);
     public void testSumOfInts4() {
                int sumOfInts = math.sumOfInts(-49);
                assertEquals(0, sumOfInts);

试试这个

public int sumOfInts(int i) {
    int sum = 0;
    int iteration = 0; 
    while(iteration < i){
       sum = sum+iteration;
       iteration++;
    }  
    return sum;
    
}

您正在寻找一种方法来计算累计和。您编写的方法只给出了它运行的次数,这正是您作为参数提供的次数。

您需要区分计数器(参数)和累加和,并更新计数器的值,以便 while 循环知道何时退出。

最后,<= 比较是获得正确值所必需的(相对于 <=)。

这是一个例子:

   public int sumOfInts(int i) {
        int sum = 0;
        int counter = 0;

        while(counter <= i) {
            sum = sum + counter;
            counter = counter + 1;
        }
        return sum;
    }