如何调试我的Java代码?

时间:2018-03-07 09:23:29

标签: java

public class night {

public static void main(String[] args) {
    System.out.println(addition(1,1,1,1));
}

public static int addition (int...numberz){

    int total=0;

    for(int x=1; x<=numberz.length; x++) {
        total+=x;
    }
    return total;
  }
}

上述代码无法正确添加数字。

当我在方法&#34;添加&#34;中使用增强的for循环时,我得到了预期的结果: -

public static int addition (int...numberz){

    int total=0;

    for(int x:numberz) {
        total+=x;
    }
    return total;
}

请尽可能简单地回答,为什么第一个代码不起作用,第二个代码不起作用。

修改

我不知道省略号是变量&#34; numberz&#34;成阵列。

6 个答案:

答案 0 :(得分:1)

问题在于使用循环。这些是:

  • 您正在添加索引,即x,而不是索引的值,即numberz[x]。因此,将行total+=x;更改为total+= numberz[x];
  • 您需要将循环从for(int x=1; x<=numberz.length; x++)更改为for(int x=0; x<numberz.length; x++)

以下是更正后的代码。看到它正常工作here

public class night {

    public static void main(String[] args) {
        System.out.println(addition(1,1,1,1));
    }

    public static int addition (int...numberz){

        int total=0;

        for(int x=1; x<numberz.length; x++) {
            total+= numberz[x];
        }
        return total;
      }
}

答案 1 :(得分:0)

您应该在第一个for-loop

中访问该数组
public static int addition (int...numberz){

    int total=0;

    for(int x=1; x<=numberz.length; x++) {

        total+=numberz[x]; // <--- here

    }

        return total;


}

答案 2 :(得分:0)

这个循环错了

for(int x=1; x<=numberz.length; x++) {
    total+=x;
}

因为要添加数组的索引而不是指向...的值

你需要数组中的值而不是索引:

for(int x=1; x<=numberz.length; x++) {
    total+=numberz[x];
}

答案 3 :(得分:0)

这是第一个的for循环:

for(int x=1; x<=numberz.length; x++) {

        total+=x;

}

在这里,您不是要添加numberz数组中的数字,而是从1开始索引x并将其总和为总变量。实际实现应如下所示:

for(int x=0; x < numberz.length; x++) {

        total+=numberz[x];

}

x从0开始,因为数组索引从0开始。

答案 4 :(得分:0)

在第一个循环中,结果为10,因为每次添加x的值时,代码都会运行,如0 + 1,1 + 1 ......等等。

  for(int x=1; x<=numberz.length; x++) {

        total+=x;

    }

由于numberez是一个整数数组,因此当数组从0开始时,你必须从0 - > 3获得它的索引。

  for(int x=0; x<numberz.length; x++) {
            total+=numberz[x];
        }

这将为您提供4作为所需结果。

答案 5 :(得分:0)

public static void main(String[] args) {
System.out.println(addition(1,1,1,1));
}

public static int addition (int...numberz){

  int total=0;

for(int x=1; x<=numberz.length; x++) {
    total+=x;
}
    return total;
 }
}
  

而不是使用

 for(int x=1; x<=numberz.length; x++) {
    total+=x;
 }
  

试试这个

   for(int x=0; x<numberz.length; x++) 
   {
        total=total+numberz[x];
   }
  

谢谢.. !!