gpt4 book ai didi

java - 如何为输入错误日期的用户正确创建循环?

转载 作者:行者123 更新时间:2023-11-30 05:55:55 27 4
gpt4 key购买 nike

所以,我最近刚刚学会了如何创建一个循环,如果不满足某些条件,该循环可以重复特定的代码行。经过反复练习,我已经成功地能够在许多不同的程序中使用循环,但是当用户输入错误的日期格式时,我遇到了一个无法解决的问题。这是给我带来问题的代码:

循环:

while(true) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter the Date: ");

date1 = scanner.next();

SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd-yyyy");
Date date2=null;
try {

date2 = dateFormat.parse(date1);
} catch (ParseException e) {
e.printStackTrace();
}

System.out.println("The date you've entered is: " + date2);
break loop;
}

当我测试如果输入错误的日期会发生什么(例如我只是输入数字 3),它会继续执行下一行代码,同时告诉我无法解析输入的日期,因为格式错误。为什么不循环播放?这是它逐字给我的错误:

java.text.ParseException: Unparseable date: "3"

The date you've entered is: null

Customer 1 profile:
at java.text.DateFormat.parse(Unknown Source)
at Creations.Shop.main(Shop.java:82)

最佳答案

当您因 try block 中的代码失败而捕获 ParseException 时,将执行该 catch block 内的代码。因此,目前它只是使用 e.printStackTrace(); 语句打印堆栈跟踪(错误消息)。相反,您需要像这样的 continue 语句,

catch (ParseException e) {
continue; // this skips the next code lines till the end of the loop
}

此外,您不需要每次都在循环中生成 Scanner 对象。您可以在 while 循环外初始化一次,然后在循环内使用它。

关于java - 如何为输入错误日期的用户正确创建循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53200137/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com