【问题标题】:Problems returning an array from one method to another?将数组从一种方法返回到另一种方法时出现问题?
【发布时间】:2023-04-09 22:34:01
【问题描述】:

我在将新数组从一种方法返回到我的主要方法时遇到问题。 我一直在做一些研究,不幸的是我似乎找不到答案? 我找到的答案似乎很详细,实际上并不是我想要的。

这是我的代码:

import java.util.*;

public class SquareArray
{


public static void main (String[] args){

    double a[] = new double[5];

    a[0] = 0;
    a[1] = 1;
    a[2] = 2;
    a[3] = 3;

    square(b);
}

public static double[] square(double[] a){

    double b[] = new double[a.length];

    for(int i = 0; i < a.length-1; i++){
        b[i] = a[i] * a[i];
        System.out.println(b[i]);
    }

    return (b); 
    }
}

该方法所需要做的就是将原始数组中的数字平方,存储在一个新数组中,然后返回主方法。

由于我还在学习 Java,请原谅我的代码中的任何错误。

非常感谢。

【问题讨论】:

  • 你需要知道方法是如何工作的。它需要什么样的参数,返回什么样的值。在您的情况下,在您调用您的方法时,我没有看到任何名为 b"visible" 的双数组。你也不会影响它的返回值到一个变量中。
  • 啊,某种形式的实例变量也是如此吗?
  • double[] sqrs = square(a);,而不是忽略方法square的返回值。
  • 不一定。你必须问自己你的方法应该做什么。在您的情况下,它返回一个数组,其中包含原始数组的平方数。那么你要传递什么原始数组呢?
  • 感谢大家的反馈。很有帮助。

标签: java arrays methods return


【解决方案1】:

您的错误是因为您传递的变量未在 Main 方法或全局中定义。您应该将该行更改为 square(a) 以传入您在它之前定义的数组。

其次,您的square 方法的返回类型为double[],但您没有将其分配给任何东西。如果您只想显示平方值,您可以简单地将其设为返回类型为void 的方法。另一方面,如果您确实想实际使用此方法返回的数组,则需要声明另一个变量并分配给它,如下所示:

double[] b = square(a);

主要优点是,如果您需要在代码中使用此方法返回的数组,例如 10 次之后,您可以只使用该变量而不是调用该方法 10 次。

【讨论】:

  • 太棒了。谢谢你。
  • 我从未见过声明的数组实际上等于方法???我们从来没有在我们的任何 Java 类中真正经历过这个?
  • 如果你的方法返回一个数组,你当然可以把它赋值给一个数组类型的变量。无法添加任何其他内容,因为我不知道您在哪里学习以及达到什么水平等等。
【解决方案2】:

如果要从方法中获取返回值,则传递当前数组并将方法传递给当前数组;

 a = square(a);

【讨论】:

    猜你喜欢
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-18
    • 2016-02-11
    • 2013-01-29
    相关资源
    最近更新 更多