我有这段代码:
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])
的问题;
但我只是不知道如何修复它,任何帮助都会很棒。
答案 0 :(得分:4)
应该提示用户输入
您需要将参数传递给main,命令行参数,然后将索引更改为0
例如:
$java YourMainClass 5
答案 1 :(得分:1)
您可以从下面采用以下两种方法之一:
方法1:您可以通过将其作为参数传递给main方法来指定oddLimit:
代码:
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);
}
}
编译并运行代码:
javac OddSum1.java
java OddSum1 20
方法2:从提示符
以交互方式阅读OddLimit代码:
public class OddSum1 {
public OddSum1() {
}
public static void main(String[] args) {
int OddLimit = Integer.parseInt(System.console().readLine());
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);
}
}
答案 2 :(得分:0)
它不会提示您输入。您必须将输入添加到命令行。
java OddSum1 5
答案 3 :(得分:0)
您的数组args
为空。
int OddLimit = Integer.parseInt("100");
硬编码,或从命令行传递
答案 4 :(得分:0)
如果使用Eclipse,请从顶部菜单中选择Run-&gt; Run ...并在Arguments选项卡下为Program参数提供一个数字。