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;成阵列。
答案 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];
}
谢谢.. !!