尝试查找数组总和时 Eclipse 中的死代码

发布于 2025-01-13 05:00:50 字数 361 浏览 4 评论 0原文

我尝试使用 for 循环查找任何数组的总和,但 i++ 部分最终成为无法访问的死代码。我不明白为什么?

 public static int sum(int[] data) {
            int sum = 0;
            int i;
            for (i = 0; i < data.length; i++) { //the i ++ is the deadcode
                    sum += data [i];
                    return sum;
                }
            return 0;
        }

I tried to find the sum of any array by using the for loop but the i++ part ended up being the deadcode unreachable. I don't understand why?

 public static int sum(int[] data) {
            int sum = 0;
            int i;
            for (i = 0; i < data.length; i++) { //the i ++ is the deadcode
                    sum += data [i];
                    return sum;
                }
            return 0;
        }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

夕色琉璃 2025-01-20 05:00:50

i++ 是死代码,因为它永远无法访问。它永远无法到达,因为循环中有一个 return 语句。因此,它永远不会执行 for 循环的增量部分。将 return sum; 移到循环之外(替换 return 0;)。

public static int sum(int[] data) {
  int sum = 0;
  for (int i = 0; i < data.length; i++) {
    sum += data [i];
  }
  return sum;
}

The i++ is dead code because it can never be reached. It can never be reached because you have a return statement within the loop. Therefore, it will never execute the increment portion of the for-loop. Move the return sum; outside the loop (replacing the return 0;).

public static int sum(int[] data) {
  int sum = 0;
  for (int i = 0; i < data.length; i++) {
    sum += data [i];
  }
  return sum;
}
时常饿 2025-01-20 05:00:50

不要在 for 循环中返回任何内容,因为 return 结束了整个函数的循环。

相反,做这样的事情:

    public static int sum(int[] data) {
        int sum = 0;
        for (int i = 0; i < data.length; i++) {
            sum += data[i];
        }
        return sum;
    }

Don't return something inside for loop, because return ends the cycle of whole function.

Instead, do something like this:

    public static int sum(int[] data) {
        int sum = 0;
        for (int i = 0; i < data.length; i++) {
            sum += data[i];
        }
        return sum;
    }
心作怪 2025-01-20 05:00:50

您总是在第一次迭代后返回,因此除了第一个元素之外,您不会对任何内容求和。
你应该这样做:

    public static int sum(int[] data) {
        int sum = 0;
        for (int i = 0; i < data.length; i++)
        { 
                sum += data [i];

         }
        return sum;
    }

public static void main(String[] args)
{
    int data[] = {1,2,3,4,5}; 
    int sum = sum(data);
    
    System.out.println(sum);
}

}

You are always returning after the first iteration so you do not sum anything besides the first element.
You should do it like this :

    public static int sum(int[] data) {
        int sum = 0;
        for (int i = 0; i < data.length; i++)
        { 
                sum += data [i];

         }
        return sum;
    }

public static void main(String[] args)
{
    int data[] = {1,2,3,4,5}; 
    int sum = sum(data);
    
    System.out.println(sum);
}

}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文