2016-03-16 56 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”}