2013-04-25 108 views
0

我有这样的代码:获得一个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

可以采取任何从下面的两种方法的:

方法1:

代码:

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); 
}  
} 
可以通过将其作为参数传递给主方法作为指定oddLimit

要编译和运行代码:

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); 

} 
} 
4

It's supposed to prompt user for a

您需要将参数传递给主,命令行参数,然后更改索引0

例如:

$java YourMainClass 5 
0

它不会提示您输入。您将不得不将输入添加到命令行。

java OddSum1 5 
+0

或者他可以改写该项目采取从'java.io.Console'类的输入。或者他可以同时执行这两个操作,首先在'args.length'上进行测试,然后从控制台进行操作。 – 2013-04-25 18:53:19

0

您的数组args为空。

int OddLimit = Integer.parseInt("100"); 

硬编码号,或者如果使用Eclipse命令行

+0

谢谢,我试过了,它效果很好。 – 2013-04-25 19:05:03

0

通过它,从顶部菜单中运行 - >运行选择......和参数选项卡下提供程序参数的数字。

相关问题