本文介绍了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);

这篇关于Do While循环..在输入正确的情况下继续的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。