Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用数组输入调用方法_Java_Arrays - Fatal编程技术网

Java 如何使用数组输入调用方法

Java 如何使用数组输入调用方法,java,arrays,Java,Arrays,我有以下代码,其中包含设置和打印数组值的方法: int n; // this is a method for get and set value of array public static int[] avali(int n) { System.out.println("insert number"); Scanner num = new Scanner(System.in); int a1[] = new int[n]; for (int i = 0;

我有以下代码,其中包含设置和打印数组值的方法:

int n;

// this is a method for get and set value of array
public static int[] avali(int n) { 

    System.out.println("insert number");

    Scanner num = new Scanner(System.in);
    int a1[] = new int[n];
    for (int i = 0; i < n; i++) {

        a1[i] = num.nextInt();

    }

    return a1;
}

//method of inverse array
public void dovomi(int[] a) {

    for (int i = n; i > 0; i--) {

        System.out.println(a);
    }

 }

public static void main(String[] args) {
    System.out.println("insert arr size: ");
    Scanner n = new Scanner(System.in);
    JavaApplication17 x = new JavaApplication17();
    x.avali(n.nextInt());
    x.dovomi(a1);

}
intn;
//这是一个获取和设置数组值的方法
公共静态int[]avali(int n){
系统输出打印项次(“插入编号”);
扫描器编号=新扫描器(System.in);
int a1[]=新的int[n];
对于(int i=0;i0;i--){
系统输出打印项次(a);
}
}
公共静态void main(字符串[]args){
System.out.println(“插入arr大小:”);
扫描器n=新扫描器(System.in);
JavaApplication17 x=新的JavaApplication17();
x、 阿瓦利(n.nextInt());
x、 多沃米(a1);
}
如何使用数组作为参数调用此方法?
为什么我不能用这种方式访问
a1

您的
dovomi
方法和
main
有一些错误,您必须更正它们才能运行程序:

第二种方法应该是
static
而且
n
变量未在方法范围内定义,您可以使用
a.length
获取数组大小:

   public static void dovomi(int[] a) {

    for (int i = a.length-1; i >= 0; i--) {

        System.out.println(a[i]);
    }
   }
main
method您还必须定义数组并将
avali
method的返回数组放入其中,以打印
dovomi
方法的结果:

 public static void main(String[] args) {
    System.out.println("insert arr size: ");
    Scanner n = new Scanner(System.in);
    int size = n.nextInt();
    int[] a1=new int[size];
    a1=avali(size);
    dovomi(a1);
}

您需要理解返回值的概念

有些方法不返回任何值。它们被标记为
无效
。其他人也是。它们被标记为它们返回的任何类型的值

不返回值的方法示例包括
System.out.println()
dovomi
main

另一方面,
n.nextin
返回值

你能看出
n.scan
System.out.println
的用法有什么不同吗

x.avali(n.nextInt());
// vs
System.out.println("Hi");
n.nextInt()
可以作为参数传递到方法中,但是
System.out.println
不能。为什么?因为
n.nextInt()
返回一个值!基本上,返回值的方法可以用作值,这样您就可以将它们作为参数传递、将它们分配给变量、对它们调用其他方法

现在为什么您不能访问
a1

因为
a1
是在
avali
的范围内声明的,所以您不能在
avali
之外访问它。但是,
a1
avali
返回:

return a1;
因此,您可以创建一个新变量,并将
avali
的返回值分配给它:

int[] a1 = x.avali(n.nextInt());
现在这一行编译

x.dovomi(a1);
错误在最后一行(x.dovomi(a1);)中。请选择并学习创建错误。在当前状态下,您的问题与本网站无关。