我写了一个代码,获取用户对开始日期的输入
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 ");
您添加了check StartDate=false
将while条件更新为while(检查开始日期)
作为其布尔值求值。
以下是工作代码
int year、startMonth、endMonth、startDay、endDay;布尔值checkStartDate=false,checkEndDate=false;扫描仪输入=新扫描仪(系统输入);
//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);
//checking End Date
do
{
checkEndDate = false;
System.out.print("Check End Date... ");
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);
System.out.println("correct ");
while (checkEndDate = true)
您将check EndDate
分配为true,因此循环将始终重复。您可能是指:
while (checkEndDate == true)
这将比较两个值。但由于您已经有了布尔值,因此不需要进行比较:
while (checkEndDate)
请注意,您可以通过组合类似案例来显着减少代码量。例如:
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(startDay <= 31)
{
checkStartDate = true;
}
break;
30天的月份也是如此。
您还应该编写一个checkDate()方法,这样就不会将相同的代码编写两次。
当我像这样做一个常规的while循环时 它打印 但第二个while循环在满足条件后再次运行。 所以结果是 “佛罗多是一个很好的霍比特人的名字”难道它不应该停止印刷吗 我设置了x的条件 编辑:哦,我现在明白了,哈哈,我想增量是在代码的末尾,开始是0
我有一个项目,我的方法得到两个日期,它不断地向方法添加一天,直到两个日期相等,然后您可以通过查看一天添加了多少次来查看日期相距有多远。我的问题是,当满足日条件时,即使日、月和年必须都相同才能停止工作,我的while循环也会退出
我正在制作一个汽车游戏。只有“开始”、“停止”、“退出”命令。无法识别任何其他命令。 除了“退出”之外,所有命令都可以正常工作。使用while循环,它会执行和打印else语句: 命令=“退出”应该呈现当条件,因此跳过前面只执行外部的其他语句。为什么它执行其他两个语句,甚至认为同时条件不满足?
我正在运行一个纸牌游戏,两个玩家轮流挑选纸牌,玩家向前移动许多空格。在这种情况下,一旦任何一个玩家达到25或更大的数字,他们击中了家,游戏应该停止。 我的while循环在两个玩家都达到25后继续循环,即使我已经设置了条件,在玩家1的值小于25或玩家2的值小于25时循环。 当循环条件出了什么问题? 编辑:这是我运行的一个测试的一些输出。
我试图用Python做一个简单的计算器。 我希望用户写“and”,然后while循环应该结束。当我运行它并输入随机文本时,while循环工作并显示“重试”。然而,当我实际输入正确答案(“add”)时,while循环并没有结束——相反,它一直在说“再试一次”。 为什么会这样?我的代码怎么了?
所以我必须在eclipse中为我的类创建一个java项目。分配是创建一个程序,允许用户在程序中输入整数,直到输入某个整数(42)。输入整数(42)后,程序将为1。平均输入的所有数字。2、显示输入的最小值和最大值。3、输入的数字总数。这些必须在不计算(42)的情况下进行计算。这就是我目前所拥有的。我可以从用户那里获得输入,一旦他们输入42,程序就会停止并显示总数,但包括42。我不知道如何为输入添加一