【问题标题】:What's the meaning of args.length? [duplicate]args.length 的含义是什么? [复制]
【发布时间】:2014-06-21 07:37:03
【问题描述】:

最近我遇到了这段代码,我真的很想了解何时以及如何使用这个 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;

}

}

}

【问题讨论】:

  • 最明显的猜测是找到args.length的含义,应该是:args的长度,而args是输入数组。
  • 答案可以在JLS - Array Members找到。
  • 我想了解更多关于它的信息,比如为什么、如何以及在哪里使用它......即在什么条件下我们将使用 args.length。我发现这有点难以理解。请帮忙
  • docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html。当您想知道数组args 的长度时,可以使用args.length。 IE。当您想知道有多少参数传递给您的 main 方法时。例如,如果程序应该使用恰好 2 个参数调用,但 args.length 不是 2,则可以打印错误消息并退出。
  • @MarounMaroun 啊。我正在尝试找到该链接

标签: java


【解决方案1】:

main() 方法是 java 程序开始执行的初始点。这就是为什么main() 方法是publicstaticvoid。传递给main() 方法的参数是String args[],即一个字符串数组。变量名不一定只能是args,可以是任意变量名,即String names[]

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

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

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

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

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

【讨论】:

  • 很好的解释。
【解决方案2】:

当你运行一个程序时,你可以运行传递command-line arguments的程序。如果主要方法是:

public static void main(String args[])

参数将在名为argsString 数组中接收。现在,关于您的问题:

args.length 是什么意思?

这是数组中built-in property length 的值,将是它的固定大小。请注意,Java 中的数组是一种特殊的对象。

【讨论】:

    【解决方案3】:

    args.length 是 args[] 数组中的元素数。 args[] 数组包含从命令行传递给 main 函数的参数。

    【讨论】:

      【解决方案4】:

      args 数组中的元素数,在 public static main(String[] args) 中定义。

      【讨论】:

        猜你喜欢
        • 2017-08-28
        • 2015-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-11
        • 2013-12-14
        • 1970-01-01
        相关资源
        最近更新 更多