方法中数组的值不能返回给 main (java)

Values of an array, in a method, cannot be returned to main (java)

我是 Java 的新手,我也在尝试弄清楚 return 语句如何处理数组。在程序中,我正在尝试 return 在 'squares' 方法中填充的数组到 main。我的意图是编写一个方法 int[] squares(int n),该方法 return 是一个数组,其中包含从 1 到 n 的所有自然数的平方。 目前我只是在测试并试图弄清楚如何通过 myArray。 我得到的错误是

Array8.java:7: error: cannot find symbol int[] mainArray = myArray;"

public class Array8{

  public static void main(String[] args)
  {
    squares(3);
    int[] mainArray = myArray; //cannot find symbol

    for(int i = 0; i < mainArray.length; i++){
      System.out.println(mainArray[i]);
    }
  }

  public static int[] squares(int n){

    int[] myArray = new int[n];
    for(int i = 0; i < myArray.length; i++){
      myArray[i] = 1 + i;
    }
    return myArray;
  }

}

myArray 是 squares() 方法的局部变量。您只能通过该方法访问它。

你想要的是:

mainArray = squares(3);

您需要收集从 squares 方法返回到变量 mainArray 的输出,如下所示。 变量 myArray 是方法 square 的局部变量,因此在您的 main 方法中不可用。

int[] mainArray = squares(3);

您创建了 int[] myArray 作为局部变量 squares() 方法的一部分。 如果你想使用它,你可以将它创建为全局变量,然后你可以赋值。

如果您想测试 int[] return 类型的工作原理,您可以更改代码 int[] mainArray = myArray;到 int[] mainArray = 正方形(3); - 在此行中,retun int[] 将分配给 mainArray。

您尚未在 main 方法中初始化 myArray,您的 squares() 方法中的 myArray 超出了您的 main 方法的范围。

public static void main(String[] args)
{
    int[] myArray = squares(3);
    int[] mainArray = myArray; 

    for(int i = 0; i < mainArray.length; i++){
      System.out.println(mainArray[i]);
    }
}

将解决您的问题,但外观会更简洁。

{
int[] mainArray = squares(3); 

for(int i = 0; i < mainArray.length; i++){
  System.out.println(mainArray[i]);
    }
}