日期:2014-05-20 浏览次数:20796 次
import java.util.Scanner; public class Year{ public static void main(String[] args) { int year; Scanner scan = new Scanner(System.in); System.out.println("请输入年份:"); year = scan.nextInt(); /*if (year < 0 || year > 3000) { System.out.println("输入有误,请重新输入:"); year = scan.nextInt(); }*/ testYear(year); if((year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0)) { System.out.println(year + "是闰年!"); } else { System.out.println(year + "不是闰年!"); } } static int testYear() { //此处要用static Scanner scan = new Scanner(System.in); if(scan.hasnextInt()) return scan.nextInt(); else { System.out.println("输入有误,请重新输入:"); return testYear(); } } }
public static void main(String[] args) { int year; boolean flag = true; System.out.println("==========请输入年份============"); while(flag){ try{ Scanner scanner = new Scanner(System.in); year = scanner.nextInt(); if(year > 0 && year <3000){ if(year % 4 == 0 && year % 100 != 0 || year % 400 == 0){ System.out.println(year+"是闰年"); }else{ System.out.println(year + "是平年 "); } flag = false; }else{ System.out.println("输入的数字不在0-3000范围,请重新输入"); } }catch(Exception e){ System.out.println("========输入的年份不是整数,请重新输入==========="); } } }
------解决方案--------------------
只是给你重写一下那个函数:
static int testYear() {
Scanner scan = new Scanner(System.in);
int year = 0;
while(true){
try{
year = scan.nextInt();
if(year>1 && year<3000)
break;
System.out.println("输入的数字不再1到3000之间,重新输入");
}catch{
System.out.println("输入的不是数字,重新输入");
}
}
}
------解决方案--------------------
来个
while(true){
if(year<0|year>3000){
System.out.print("重新输入");
continue;
}
......
}