Java 如何从main中的方法打印数组?
我创建了一个用素数填充数组的方法。但是,我很难理解在它被填充到打印它的主方法之后,我如何返回它?这样返回给我一个错误,它找不到这样的符号Java 如何从main中的方法打印数组?,java,Java,我创建了一个用素数填充数组的方法。但是,我很难理解在它被填充到打印它的主方法之后,我如何返回它?这样返回给我一个错误,它找不到这样的符号 public static int[] fillArray(int a){ int[] arr = new int[a]; int m = 0; for (int i = 1; m < arr.length; i++){ if (isPrime(i)){
public static int[] fillArray(int a){
int[] arr = new int[a];
int m = 0;
for (int i = 1; m < arr.length; i++){
if (isPrime(i)){
arr[m] = i;
m++;
}
}
return arr;
}
public static void main(String[] args) {
int a = Integer.parseInt(args[0]);
System.out.println(arr);
}
公共静态int[]填充数组(int a){
int[]arr=新的int[a];
int m=0;
对于(int i=1;m
公共静态int[]填充数组(int a){
int[]arr=新的int[a];
int m=0;
对于(int i=1;m
在这里了解有关调用方法的更多信息:我建议,您可以执行以下操作:
public static int[] fillArray(int a){
int[] arr = new int[a];
int m = 0;
for (int i = 1; m < arr.length; i++){
if (isPrime(i)){
arr[m] = i;
m++;
}
}
return arr;
}
public static void main(String[] args) {
int a = Integer.parseInt("5"); //Pass a hard coded value or Read it from Scanner class and pass the same as argument
int[] arr = fillArray(a);
System.out.println(arr); //This line not actually prints the values of array instead it prints the Object representation of the array
// Below small piece of code will print the values of the array
for(int val:arr){
System.out.println(val);
}
}
公共静态int[]填充数组(int a){
int[]arr=新的int[a];
int m=0;
对于(int i=1;m
您需要从main
调用fillArray
方法并捕获其返回值。您需要将arr作为类内的全局变量,如static int[]arr代码>之后,您需要在main中调用arr=fillArray(a)
打印该数组之前。在main方法中声明一个数组(类似于fillArray方法中的数组),并将该方法的返回数据放到main方法中的数组中,然后可以轻松打印它arr
是fillArray
方法的局部变量。因为每次调用方法时,都会为每次调用生成新变量arr
,因此不可能从其他地方访问它,因为我们不知道(1)方法是否被调用,所以如果arr
在当时实际存在(2)如果方法被多次调用,在这种情况下,您希望访问哪个arr
值?相反,您应该调用类似于fillArray(5)
的方法,并将其结果数组(由arr
持有的返回数组)存储在调用它的位置(此处来自main
方法),如int[]primes=fillArray(5)代码>我相信您的代码将为行“int a=Integer.parseInt(args[0]);”提供ArrayIndexOutOfBoundsException,因为没有可从args变量获取的值。我测试了你的代码,它给出了一个异常。如果我错了,请纠正我,System.out.println(arr)
也没有给出可用的结果。与@Spectric的评论相关:
public static int[] fillArray(int a){
int[] arr = new int[a];
int m = 0;
for (int i = 1; m < arr.length; i++){
if (isPrime(i)){
arr[m] = i;
m++;
}
}
return arr;
}
public static void main(String[] args) {
int a = Integer.parseInt("5"); //Pass a hard coded value or Read it from Scanner class and pass the same as argument
int[] arr = fillArray(a);
System.out.println(arr); //This line not actually prints the values of array instead it prints the Object representation of the array
// Below small piece of code will print the values of the array
for(int val:arr){
System.out.println(val);
}
}