Java 通过参数将值传递给我的程序意味着什么?
我最近说我的代码不起作用,并显示消息: 线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常:0 在FactorialProgram5.main(FactorialProgram5.java:11) 使用代码:Java 通过参数将值传递给我的程序意味着什么?,java,arrays,command-line-arguments,Java,Arrays,Command Line Arguments,我最近说我的代码不起作用,并显示消息: 线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常:0 在FactorialProgram5.main(FactorialProgram5.java:11) 使用代码: import java.util.Scanner; public class FactorialProgram5 { public static void main(String args[]) { lon
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);
}
}
import java.util.Scanner;
公共类阶乘程序5{
公共静态void main(字符串参数[]){
长n;
长事实=1;
n=1;
对于(inti=1;i这家伙说的是,在命令行中,您可以在运行java程序时键入参数,有点像这样:
<run-java-using-a-command> Bob Joe Bill
您可以在程序中使用这些参数。在Eclipse中,您可以单击Run | Run | program arguments
(在屏幕顶部)编辑参数。您的主要方法是从命令行获取任何参数。例如,如果您首先在命令行上导航到java文件的位置:
键入这些命令。
1.javac filename.java
这将编译您的.java文件
2.java文件名
(如果要在没有参数的情况下运行)。
要将参数传递到文件,请使用:
java文件名参数
这里,参数被转换为字符串数组(主方法中的args)
因此,当编译此文件时,将使用类似于以下命令的命令运行
java文件名99
代码中的行n=Long.parseLong(args[0]);
将把数字99插入args[0].n将被设置为99,或者在每次运行此程序时在命令行上的java filename
之后决定键入的任何内容。这意味着您需要在命令行上添加一个参数,以便程序能够找到并处理它。在本例中,我使用的参数是数字3
我已经在命令行上编译并运行了您的程序,以演示它是如何工作的
$ javac FactorialProgram5.java
$ java FactorialProgram5 3
fact=6
$
注意:我在打印指令中添加了一个缺少的换行符
System.out.print("fact=" + fact);
变成
System.out.print("fact=" + fact + "\n");
“我需要这样做,这样我也可以在命令提示符中使用此代码”如果您使用命令提示符,则在运行程序时会键入参数。
System.out.print("fact=" + fact + "\n");