问题描述: 

  输入一个年份,确定其是否合法,并且判断该年份是否为闰年。

 

测试用例:

  1.可以被被400整除的年份

  2.可以被4整除,但不能被100整除的年份

  3.可以被100但不能被400整除的年份

  4.奇数年份

  5.偶数但不能被4整除的年份

  6.非法输入

 

测试代码:

  通过对问题的分析,和对测试用例的思考,得出测试所需的主要方法为:

 1 public boolean isLeapYear(int year)
 2 {
 3     boolean judge = false;
 4 
 5     if (year % 4 == 0)
 6         judge = true;       
 7 
 8     if (year % 100 == 0)
 9         judge = false;
10 
11     if (year % 400 == 0)
12         judge = true;
13 
14     return judge; 
15 }


输入问题:

   对于一个输入,获取为字符串类型,该问题中我们使用Integer.parseInt(String)方法将输入转化为所需年份,来防止非法的字符串转

化为Int的输入,但是该函数在获得非法输入时,会抛出一个异常java.lang.NumberFormatException,需要对其进行try-catch异常处

理,在改过程中调用以上闰年判断方法,处理非法输入,并且完成年份判断。

 

部分代码:

 1 try{
 2     if(isLeapYear(Integer.parseInt(input))) {
 3         System.out.println(input + "年是闰年");
 4     }
 5     else {
 6         System.out.println(input + "年不是闰年");
 7     }
 8 }
 9 catch (Exception e){
10      System.out.println(input + "不是一个合法的输入");
11 }


以上完成了判断一个输入是否为闰年这一任务,展示的代码实现了主要的方法,我们还可以从输入的阶段进行合法性的研究,使得该程序

有更强的健壮性,并且完成更加完善的用户交互的代码实现,建立完善的异常处理机制。