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);
相关文章