我想写这个小程序,它应该在为一个变量输入时进行简单的计算。这是代码:
public class DFact {
public static void main(String[] args) {
int n;
int df;
int i;
n = Integer.parseInt(args[0]);
df = 1;
i = n;
while(i > 0) {
df = df * i;
i = i - 2;
}
System.out.println(df);
}
}
对于这个程序,我收到以下消息:
线程中的异常" main" java.lang.ArrayIndexOutOfBoundsException:0
在DFact.main(DFact.java:9)
答案 0 :(得分:2)
我建议您将代码更改为以下内容:
public class DFact {
public static void main(String[] args) {
int n;
int df;
int i;
for (String arg : args) { // to prevent nullpointers and index out of bound
n = Integer.parseInt(arg);
df = 1;
i = n;
while (i > 0) {
df = df * i;
i = i - 2;
}
System.out.println(df);
}
}
}
然后在您的文件目录中打开命令行并输入:
javac {fileName.java}
和
java {fileName} 1 2 3 4 5 6
答案 1 :(得分:1)
您正在获取索引超出范围的异常,这意味着args中没有索引0。在从中请求变量之前检查args的长度。
public class DFact
{
public static void main(String[] args)
{
if (args.length > 0) {
int n;
int df;
int i;
n = Integer.parseInt(args[0]);
df = 1;
i = n;
while(i > 0)
{
df = df * i;
i = i - 2;
}
System.out.println(df);
}
}
}