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

问题描述 投票:0回答:1

我是Java的新手,我也在努力弄清楚return语句如何与数组一起工作。在程序中,我试图将在“ squares”方法中填充的数组beeing返回给main。我的意图是编写一个方法int[] squares(int n),该方法返回一个数组,其中包含从1到n的所有自然数的平方。目前,我只是在测试并试图弄清楚如何通过myArray。我得到的错误是

Array8.java:7:错误:找不到符号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;
  }

}
java arrays parameter-passing cannot-find-symbol
1个回答
1
投票

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

int[] mainArray = squares(3);

0
投票

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

您想要的是:

mainArray = squares(3);


0
投票

您创建了int [] myArray作为squares()方法的一部分,该方法是局部变量。如果要使用它,可以将其创建为全局变量,然后进行分配。

如果您要测试int []返回类型的工作方式,则可以更改代码int [] mainArray = myArray;至int [] mainArray = squares(3); -在这一行中,将retun int []分配给mainArray。


0
投票

您尚未在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]);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.