Do While循环..在输入正确的情况下继续

2022-08-19 00:00:00 while-loop java do-while

我正在尝试执行While循环,但它一直在我身上失败。 因此,虽然用户没有输入日期,但它将一直运行,直到输入有效的日期。 IsValidDate是一个检查日期是真还是假的方法。仅当输入dd/mm/yy时,DATE才为真。

我正在检查日期是否正确。如果它是正确的,它将被存储到字符串Date中,程序将继续。 如果不正确,程序将再次提示用户输入正确的日期。

当我第一次输入错误的日期时,系统会提示我再次输入正确的日期。 此时,当我输入正确的日期时,程序无法再验证该日期是否正确。为什么会发生这种情况?

请帮帮忙!

    public void bookingA(){
        bkList = new ArrayList<bookingInfo>();

        Scanner keys = new Scanner(System.in);
        String date;

        System.out.println("
Enter the date: ");
        while(!isValidDate(keys.nextLine())) {
            do {
               System.out.println("That is not a valid date! Please enter again (dd/mm/yy): ");
               date = keys.nextLine();
            } while (!isValidDate(date));
            System.out.print(date);
            break;
        }
}

解决方案

您有无限循环,请将其更改为:

System.out.println("
Enter the date (dd/mm/yy): ");
while (true) {
    date = keys.nextLine();
    if (isValidDate(date)) {
         break;
    } else {
         System.out.println("That is not a valid date! Please enter again (dd/mm/yy): ");
    }
} 
System.out.print(date);

相关文章