从您的外观来看
monthsArray,第一个元素是空白字符串。请记住,数组是从零开始的,您要求用户输入介于1到12之间的一个月(这很好,因为没人认为1月是第0个月,对吧?)。在稍后的代码中,您将执行以下操作:
String monthChoice = monthsArray[month - 1];
但是,您的数组实际上包含13个元素,因为您添加了该空格,因此在这种情况下,实际上可以安全地使用未更改的
month索引,如下所示:
String monthChoice = monthsArray[month];
或者,删除数组开头的空字符串,并按
monthChoice原样保留行(取决于实现的工作方式。这纯粹是您的选择)。
一些注意事项:
您当前
monthArray在switch语句的主体中声明您的身份,这是不必要的。最好在方法的顶部声明它,或者甚至更好地将其声明为类中的常量,如下所示:
private static final String[] monthsArray = { "", "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec" };另外,这一行:
for (int i=0; i < monthsArray.length; i++)
是没有用的。我不知道这是否是未完成的解决方案的一部分,但是它所要做的只是重复紧随其后的语句,据我所知,这是不必要的。基本上与此相同:
for (int i=0; i < monthsArray.length; i++){ String monthChoice = monthsArray[month - 1];}因此,您应该安全地摆脱它。



