我编写了一个代码,它可以获取用户在开始日期和结束日期上的输入,并检查它们是否有效。在下面的代码中,我有 2 个 do..while 循环。一个用于开始日期,另一个用于结束日期。当执行第一个循环并且条件不满足时,程序不会继续执行另一个 do while 循环。如果我能收到此问题的解决方案,那将很有帮助。
int year, startMonth, endMonth, startDay, endDay;
boolean checkStartDate = false, checkEndDate = false;
Scanner input = new Scanner (System.in);
//checking Start Date
do
{
checkStartDate = false;
System.out.print("Enter the year: ");
year = input.nextInt();
System.out.print("Enter the start month: ");
startMonth = input.nextInt();
System.out.print("Enter the start day: ");
startDay = input.nextInt();
switch (startMonth)
{
case 1:
if(startDay <= 31)
{
checkStartDate = true;
}
break;
case 2:
if(startDay <= 28)
{
checkStartDate = true;
}
break;
case 3:
if(startDay <= 31)
{
checkStartDate = true;
}
break;
case 4:
if(startDay <= 30)
{
checkStartDate = true;
}
break;
case 5:
if(startDay <= 31)
{
checkStartDate = true;
}
break;
case 6:
if(startDay <= 30)
{
checkStartDate = true;
}
break;
case 7:
if(startDay <= 31)
{
checkStartDate = true;
}
break;
case 8:
if(startDay <= 31)
{
checkStartDate = true;
}
break;
case 9:
if(startDay <= 30)
{
checkStartDate = true;
}
break;
case 10:
if(startDay <= 31)
{
checkStartDate = true;
}
break;
case 11:
if(startDay <= 30)
{
checkStartDate = true;
}
break;
case 12:
if(startDay <= 31)
{
checkStartDate = true;
return;
}
default:
checkStartDate = false;
System.out.println("Try again and enter a valid date \n");
}
checkStartDate = false;
} while (checkStartDate = true);
//checking End Date
do
{
checkEndDate = false;
System.out.print("Enter the year: ");
year = input.nextInt();
System.out.print("Enter the start month: ");
endMonth = input.nextInt();
System.out.print("Enter the start day: ");
endDay = input.nextInt();
switch (endMonth)
{
case 1:
if(endDay <= 31)
{
checkEndDate = true;
}
else
{
checkEndDate = false;
System.out.println("Print a valid start day");
}
break;
case 2:
if(endDay <= 28)
{
checkEndDate = true;
}
break;
case 3:
if(endDay <= 31)
{
checkEndDate = true;
}
break;
case 4:
if(endDay <= 30)
{
checkEndDate = true;
}
break;
case 5:
if(endDay <= 31)
{
checkEndDate = true;
}
break;
case 6:
if(endDay <= 30)
{
checkEndDate = true;
}
break;
case 7:
if(endDay <= 31)
{
checkEndDate = true;
}
break;
case 8:
if(endDay <= 31)
{
checkEndDate = true;
}
break;
case 9:
if(endDay <= 30)
{
checkEndDate = true;
}
break;
case 10:
if(endDay <= 31)
{
checkEndDate = true;
}
break;
case 11:
if(endDay <= 30)
{
checkEndDate = true;
}
break;
case 12:
if(endDay <= 31)
{
checkEndDate = true;
return;
}
default:
checkEndDate = false;
System.out.println("Try again and enter a valid date \n");
}
checkEndDate = false;
} while (checkEndDate = true);
System.out.println("correct ");