为什么第12个月没有正确执行?

时间:2011-02-14 16:21:25

标签: java

String months[] = { null , "Jan" , "Feb" , "Mar" , "Apr", 
                    "May", "Jun", "Jul", "Aug", "Sep", "Oct", 
                    "Nov", "Dec" };

try
{
  System.out.print("Enter month <1 for Jan - 12 for Dec>:  ");

  m = input.nextInt();
  MonthData();
}
catch(Exception e)
{
  System.out.println("Invalid month!"); //error message to  inform user of wrong input
}   

break;

static void MonthData()
{            

  System.out.println("----------------------------------------");
  System.out.println(months[m]+" Expenditure <max 10 items>");

  try
  {
    for(int i=0; i<10; i++)
    {
      System.out.print("Enter item "+(i+1)+" <Press ENTER to exit> : ");
      monthItems[m][i] = input.next();

      if (monthItems[m][i].length() == 0)
      {
        return;
      } 
      else 
      {
        System.out.print("Enter amount : $");
        amount[m][i] = input.nextDouble();
        System.out.println("");
      }   

    }

  }
  catch(Exception e)
  {
    System.out.println("");
  }   
}

大家好

我想说这段代码有点帮助。但我的问题是为什么12月的函数不能正常执行。

例如,当我点击第12个月时,它只是跳过该功能并结束程序。

提前致谢。

2 个答案:

答案 0 :(得分:12)

我不知道为什么,但以下内容:

catch(Exception e){
        System.out.println("");
    } 

不会打印您的例外'e',因此您无法清楚地知道发生了什么。

至少:

e.printStackTrace();

很可能会为您提供更多有关正在发生的事情的信息,并且通常是良好的做法(您可以使用日志框架等,但原则保持不变)。

答案 1 :(得分:2)

也许是因为你已经声明了一个大小为12的数组并且使用索引12访问它的最后一个元素但是它应该是11,因为你从0开始计数... 12月=月11