繁体   English   中英

如何在Java中调用方法并传递参数?

[英]How to call a method and pass parameter in java?

该代码在下面列出。 因此,我期望输出为{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] + " ");
        }
  }
}

由于双重无效方法跟随无效

int[] s=w.doubler(c);

因为它类似于

int[] s= void; // wrong

更改方法的返回类型

public int[] doubler(int[] a) 

方法完成后立即返回数组b

我认为这对您有帮助,

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

将方法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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM