args.length 是什么意思?

Har*_*hit -1 java

最近我遇到了这段代码,我真的很想了解何时以及如何使用这个 args.length

import java.util.*; 

class Average
{

public static void main(String args[])

{

Scanner sc = new Scanner(System.in);

int choice;

int a=0,min=0,max=0,x;

int n = args.length;

System.out.println("1-Sum");

System.out.println("2-Average");

System.out.println("3-Minimum");

System.out.println("4-Maximum");

System.out.println("enter your choice");

choice = sc.nextInt();

for(int i=0;i<n;i++)
{

a+=Integer.parseInt(args[i]);

}

switch(choice)

{

case 1: System.out.println("The sum is :" +a/n);

break

case 2: System.out.println("The Average is :" +a/n);

break

case 3: for(int i=0;i<n-1;i++)

{

x=Integer.parseInt(args[i]);

if(x<Integer.parseInt(args[i+1]))

min=x;

else min=Integer.parseInt(args[i+1]);

}

System.out.println("The minimum is :" +min);

break;

case 4: for(int i=0;i<n-1;i++)

{

x=Integer.parseInt(args[i]);

if(x>Integer.parseInt(args[i+1]))

max = x;

else max=Integer.parseInt(args[i+1]);

}

System.out.println("The maximum is :" +max);

break;

}

}

}
Run Code Online (Sandbox Code Playgroud)

Man*_*dit 5

main()方法是初始点java程序执行的开始。这就是main()方法是public,static和的原因void。传递给main()方法的参数是String args[]一个字符串数组。不一定是变量名只能是args,它可以是任何变量名即String names[]

现在,当没有传递参数时,为什么args.length为零:

当任何 Java 程序从命令行运行时,它都以java ProgName. 命令行参数作为java ProgName Arg1 Arg2. 在此示例中,将两个参数传递给 java program ProgName。很简单,将参数传递给 java 程序的方式与我们在任何操作系统上运行带参数的命令的方式相同。参数仅通过分隔符作为“空格”与命令一起传递。

Java 解释器解释这些参数并传递给main()java 程序的方法。当我们从命令行向 java 程序传递参数时,它存储在args[]字符串数组中。由于这里有两个参数传递,运行Java程序时args[0],并args[1]会被允许的,但args[2]不会。如果没有传递参数,同样的方式,所以 java 甚至不允许args[0].

Java 将命令行参数解释为 String 数组,就好像我们传递 2 个参数它是一个带有 的数组args[0], args[1],如果我们传递 4 个参数它是一个带有 的数组,args[0], args[1], args[2], args[3]并且当没有传递参数时它仍然是一个没有元素的 String 数组对象。

因此,即使我们没有将任何命令行参数传递给 java 程序,仍然args.length等于零- (0)