while (true) { System.out.println("请输入您入住的月份,如08"); month = sc.next(); logger.info(""+month.matches("[0][1,9]|[1][0,2]")); if (month.matches("[0][1,9]|[1][0,2]")){ break; } }
时间: 2024-03-04 13:52:31 浏览: 45
这段代码是一个循环语句,用来获取用户输入的月份信息并进行验证。首先输出提示信息,要求用户输入月份,如08。然后使用Scanner类的next()方法获取用户输入的月份信息。接着使用matches()方法对输入的月份信息进行正则表达式匹配,判断是否符合格式要求,即月份必须是01-09或10-12。如果符合要求,则跳出循环,否则继续循环,直到用户输入符合要求的月份为止。同时,代码中还使用了Logger类的info()方法输出匹配结果的信息。
相关问题
修改代码让q和p可以正确的和数据库中的内容逐一比较,是否相同System.out.println("请输入你的账号:"); int q = sc.next(); System.out.println("请输入密码:"); int p = sc.nextInt(); sql = "select * from vip where vipid =" + q; rs = stmt.executeQuery(sql); while(rs.next) { System.out.println("1.查询健身课程(通过名称查询)"); System.out.println("2.查询健身课程(通过编号查询)"); System.out.println("3.浏览健身课程");
可以这样修改代码:
System.out.println("请输入你的账号:");
int q = sc.nextInt();
System.out.println("请输入密码:");
int p = sc.nextInt();
sql = "select * from vip where vipid =" + q + " and password =" + p; // 修改 SQL 语句,增加密码匹配条件
rs = stmt.executeQuery(sql);
if (rs.next()) { // 如果查询结果不为空,则说明账号和密码匹配成功
System.out.println(rs.getString("vipname") + ",欢迎您登录!");
System.out.println("1.查询健身课程(通过名称查询)");
System.out.println("2.查询健身课程(通过编号查询)");
System.out.println("3.浏览健身课程");
} else { // 如果查询结果为空,则说明账号或密码错误
System.out.println("账号或密码错误,请重新输入!");
}
优化这段代码 System.out.printf("请输入年份"); int year = input.nextInt(); if (year>0){ System.out.printf("请输入月份"); int month = input.nextInt(); if (month >= 1 && month <= 12){ System.out.printf("请输入天数"); int day = input.nextInt(); int days =0; if (month == 2){ if (year%4==0 && year%100 !=0 || year%400==0){ days = 29; }else { days = 28; } } else if (month == 4 | month == 6 | month == 9 | month == 11) { days = 30; } else if (month == 1 | month == 3 | month == 5 | month == 7 | month == 8 | month == 10| month == 12){ days = 31; }else { System.out.printf("天数输入错误"); } if(day >= 1 && day <= days) { System.out.println(year + "-" + month + "-" + day); }else { System.out.printf("天数输入错误"); } }else { System.out.printf("月份输入错误"); } }else { System.out.printf("年份输入错误"); }
到12){ System.out.printf("请输入日期"); int day = input.nextInt(); if (day >= 1 && day <= 31){ System.out.printf("%d年%d月%d日", year, month, day); }else{ System.out.printf("日期输入有误"); } }else{ System.out.printf("月份输入有误"); } }else{ System.out.printf("年份输入有误"); }
可以将输入年份、月份、日期的部分提取出来,写成一个方法,减少重复代码。同时,可以加入异常处理,避免用户输入非法字符导致程序崩溃。代码如下:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int year = getYear(input);
int month = getMonth(input);
int day = getDay(input);
System.out.printf("%d年%d月%d日", year, month, day);
}
public static int getYear(Scanner input) {
int year = ;
while (true) {
try {
System.out.printf("请输入年份");
year = input.nextInt();
if (year > ) {
break;
} else {
System.out.printf("年份输入有误");
}
} catch (InputMismatchException e) {
System.out.printf("年份输入有误");
input.next();
}
}
return year;
}
public static int getMonth(Scanner input) {
int month = ;
while (true) {
try {
System.out.printf("请输入月份");
month = input.nextInt();
if (month >= 1 && month <= 12) {
break;
} else {
System.out.printf("月份输入有误");
}
} catch (InputMismatchException e) {
System.out.printf("月份输入有误");
input.next();
}
}
return month;
}
public static int getDay(Scanner input) {
int day = ;
while (true) {
try {
System.out.printf("请输入日期");
day = input.nextInt();
if (day >= 1 && day <= 31) {
break;
} else {
System.out.printf("日期输入有误");
}
} catch (InputMismatchException e) {
System.out.printf("日期输入有误");
input.next();
}
}
return day;
}
阅读全文