2013-04-25 64 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

通過它,從頂部菜單中運行 - >運行選擇......和參數選項卡下提供程序參數的數字。

相關問題