2016-03-16 82 views
-1

我剛剛開始使用Java,並且正在使用我在線複製的代碼。我在網上覆制該代碼,並試圖對日食從Java開始

http://introcs.cs.princeton.edu/java/12types/SpringSeason.java.html

public class SpringSeason { 
    public static void main(String[] args) { 
     int month = Integer.parseInt(args[0]); 
     int day = Integer.parseInt(args[1]); 
     boolean isSpring = (month == 3 && day >= 20 && day <= 31) 
         || (month == 4 && day >= 1 && day <= 30) 
         || (month == 5 && day >= 1 && day <= 31) 
         || (month == 6 && day >= 1 && day <= 20); 

     System.out.println(isSpring); 
    } 
} 

運行它,我不斷收到此錯誤在日食

異常線程「main」 java.lang.ArrayIndexOutOfBoundsException:0 在trollstartwo.main(trollstartwo.java:4)

+7

運行時需要傳遞2個參數,例如: 'java SpringSeason 3 16' –

+0

你打電話給你的程序如何?它期望在命令行上傳遞兩個參數:'java SpringSeason 3 20'。 –

+0

注意這在鏈接文件的頂部進行了描述。 –

回答

1

ARGS [0]指字符串數組ARGS []這是主要方法的一個參數。

.... void main(String[] args) //this args array here 

ARGS []陣列由用戶運行的程序而提供的值。在運行該程序時,您可能會在Eclipse中看到主要方法參數中的選項。您必須提供args [0]args [1]的值。如果不這樣做,則數組args []甚至沒有被初始化,即它仍然是一個0空格的數組。因此,當程序嘗試訪問args []的0和1位置的值時,它甚至不會找到這些位置,因此運行時會拋出異常。

爲了避免這種情況,請在主要方法參數框中提供值。假設如果您想爲月份提供'4'並且爲天提供'5',請在框中鍵入{「4」,「5」}