日期:2014-05-20 浏览次数:20983 次
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;
}
......
}