问题描述:
输入一个年份,确定其是否合法,并且判断该年份是否为闰年。
测试用例:
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 }
以上完成了判断一个输入是否为闰年这一任务,展示的代码实现了主要的方法,我们还可以从输入的阶段进行合法性的研究,使得该程序
有更强的健壮性,并且完成更加完善的用户交互的代码实现,建立完善的异常处理机制。