我最近做了一个post,说我的代码不能工作,并显示了以下消息:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at FactorialProgram5.main(FactorialProgram5.java:11)
使用以下代码:
import java.util.Scanner;
public class FactorialProgram5 {
public static void main(String args[]) {
long n;
long fact = 1;
n = 1;
for (int i = 1; i <= n; i++) {
n = Long.parseLong(args[0]);
fact = fact * i;
}
System.out.print("fact=" + fact);
}
}
有人说我必须向它传递参数,而数组是空的。将参数传递给代码意味着什么?我正在使用eclipse,有人告诉我必须转到arguments选项卡并手动输入值,但我需要这样做,这样我也可以在命令提示符中使用此代码。我该怎么做呢?
发布于 2020-07-17 07:17:22
您的main方法是从命令行获取任何参数的方法。例如,如果您首先在命令行上导航到java文件的位置:键入以下命令。1.javac filename.java
这将编译你的.java文件2. java filename
(如果你想不带参数运行)。要将参数传递给您的文件,请使用:java filename argument
在这里,参数被转换为字符串数组( main方法中的args)。
因此,当这个文件被编译,然后使用类似命令java filename 99
的命令运行时,代码中的n=Long.parseLong(args[0]);
行将把数字99插入到args中。因此,n将被设置为99,或者您每次运行此程序时在命令行上的java filename
之后输入的任何内容。
发布于 2020-07-17 07:08:59
这家伙说的是,在运行java程序的时候,你可以在命令行中输入参数,就像这样:
<run-java-using-a-command> Bob Joe Bill
我省略了实际的运行,因为如果你打算使用eclipse,那是不必要的。但是如果像这样运行,那么args
数组将是这样的:
[Bob, Joe, Bill]
你可以在你的程序中使用这些参数。在Eclipse中,您可以做的是单击Run | Run | Program Arguments
(屏幕顶部)来编辑参数。
发布于 2020-07-17 20:03:21
这意味着您需要在命令行中添加一个参数,以便您的程序能够找到并处理它。我在本例中使用的参数是数字3。
我已经在命令行上编译并运行了您的程序,以显示它是如何工作的。
$ javac FactorialProgram5.java
$ java FactorialProgram5 3
fact=6
$
注意:我在print指令中添加了一个缺少的换行符
System.out.print("fact=" + fact);
变成了
System.out.print("fact=" + fact + "\n");
https://stackoverflow.com/questions/62944704
复制相似问题