我是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;
}
}
您需要收集从squares方法返回到变量mainArray的输出,如下所示。变量myArray是square方法的局部变量,因此在main方法中将不可用。
int[] mainArray = squares(3);
myArray对于squares()方法是局部的。您只能通过该方法访问它。
您想要的是:
mainArray = squares(3);
您创建了int [] myArray作为squares()方法的一部分,该方法是局部变量。如果要使用它,可以将其创建为全局变量,然后进行分配。
如果您要测试int []返回类型的工作方式,则可以更改代码int [] mainArray = myArray;至int [] mainArray = squares(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]);
}
}