【问题标题】:Java method to get sum of int based on test logic基于测试逻辑获取int总和的Java方法
【发布时间】:2025-11-23 17:20:10
【问题描述】:

我是学习java的新手,我在下面写了一个方法。我试图了解如何满足测试人员的方法。有没有办法通过 while 循环获得正确的逻辑? 我说 sum = 0 并且当 sum 小于 i 时,增加 sum 并循环直到它达到 i 然后返回总和(或者这就是我认为我想要做的)以满足测试。当我查看 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);

【问题讨论】:

  • 提示:55 = 10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1

标签: java loops oop methods sum


【解决方案1】:

您正在寻找一种可以为您提供累积总和的方法。你写的方法只是给你它运行的次数,这正是你作为参数提供的数字。

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

最后,

这是一个例子:

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

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

【讨论】:

  • 有道理,非常感谢!
  • 不客气。如果此答案或任何其他答案帮助您解决了问题,我鼓励您通过单击相应答案左侧的绿色按钮来接受它。这将向未来的读者表明它解决了您的请求,并有助于将注意力集中在 SO 未回答的问题上。
【解决方案2】:

试试这个

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

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
最近更新 更多