java获取ArrayIndexOutOfBoundsException
我有以下代码:
public class OddSum1 {
public OddSum1() {
}
public static void main(String[] args) {
int OddLimit = Integer.parseInt(args[0]);
int sum = 0;
for (int i = 1; i <= OddLimit; i += 2) {
sum += i;
}
System.out.println("The sum of odd numbers from 1 to " + OddLimit + " is " + sum);
}
}
无论何时运行,都会出现以下错误:
java.lang.ArrayIndexOutOfBoundsException: 0
at OddSum1.main(OddSum1.java:7)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)
它应该提示用户输入一个数字,然后将奇数从1和输入的数字相加,我猜这是这个int OddLimit = Integer.parseInt(args[0])
的问题
但我只是不知道如何修复它,任何帮助都会很棒
# 1 楼答案
您需要将参数传递给main、命令行参数,然后将索引更改为
0
例如:
# 2 楼答案
如果使用Eclipse,请从顶部菜单中选择Run->;跑在Arguments选项卡下,为程序参数提供一个数字
# 3 楼答案
它不会提示您输入。您必须将输入添加到命令行
# 4 楼答案
你的数组
args
是空的硬编码编号,或从命令行传递
# 5 楼答案
您可以从以下两种方法中选择一种:
方法1:通过将oddLimit作为参数传递给main方法,可以指定oddLimit,如下所示:
代码:
要编译并运行代码:
javac OddSum1.java
java OddSum1 20
方法2:从提示中以交互方式阅读OddLimit
代码: