下面列出了代码。所以我期望输出为{2 4 6 8 10},但是,当我测试它时,结果是{1 2 3 4 5}。我现在很困惑,谁能告诉我为什么?谢谢!
public class practice{
public void doubler(int[] a)
{
int[] b = new int[a.length];
for(int i = 0; i< a.length; i++)
{
b[i] = 2*a[i];
}
a = b;
}
public static void main(String[] args)
{
int[]c = {1,2,3,4,5};
Practice w = new Practice();
w.doubler(c);
for(int count = 0; count<c.length; count++)
{
System.out.print(c[count] + " ");
}
}
}
答案 0 :(得分:0)
因为double是无法工作的方法
int[] s=w.doubler(c);
因为它与
类似int[] s= void; // wrong
更改方法的返回类型
public int[] doubler(int[] a)
并在方法完成作业后立即返回数组
答案 1 :(得分:0)
我认为这对你有帮助,
public class practice{
public int[] doubler(int[] a)
{
int[] b = new int[a.length];
for(int i = 0; i< a.length; i++)
{
b[i] = 2*a[i];
}
return b;
}
public static void main(String[] args)
{
int[]c = {1,2,3,4,5};
Practice w = new Practice();
int[] s=w.doubler(c);
for(int count = 0; count<s.length; count++)
{
System.out.print(s[count] + " ");
}
}
}
我是你的情况,你没有将乘法数组返回int[] s
。
答案 2 :(得分:0)
将方法doubler
更改为:
public int[] doubler(int[] a)
{
int[] b = new int[a.length];
for(int i = 0; i< a.length; i++)
{
b[i] = 2*a[i];
}
return b;
}
这将为您提供新的数组b
。