当前位置: 首页 > 知识库问答 >
问题:

Java while循环在满足所有条件之前停止

曹乐意
2023-03-14

我有一个项目,我的方法得到两个日期,它不断地向方法添加一天,直到两个日期相等,然后您可以通过查看一天添加了多少次来查看日期相距有多远。我的问题是,当满足日条件时,即使日、月和年必须都相同才能停止工作,我的while循环也会退出

    while (pastDate.getDay() != futureDate.getDay() && 
    pastDate.getMonth() != futureDate.getMonth()  && 
    pastDate.getYear() != futureDate.getYear()){

共有2个答案

孟树
2023-03-14

使用<代码>。等于():

while (!pastDate.equals(futureDate)) {
    //
}

它不仅更具可读性,而且准确地说明了日期与实现的一致性,这正是OOP最佳实践所说的。

谷梁永年
2023-03-14

您需要将OR中的条件组合在一起,同时循环:

while (pastDate.getDay() != futureDate.getDay() ||
       pastDate.getMonth() != futureDate.getMonth()  ||
       pastDate.getYear() != futureDate.getYear()) {
    // do something
}

在伪代码中,当两个日期相等时,循环的逻辑为:

while (day1 == day2 && month1 == month2 && year1 == year2) {
    // ...
}

根据德摩根定律,P和Q的对立面是P或Q,当日期不相等时,这将导致以下循环:

while (day1 != day2 || month1 != month2 || year1 != year2) {
    // ...
}
 类似资料:
  • 我正在尝试使用一个do while循环来找出用户是想将一只狗还是一只猫检查到Java的养狗系统中。其思想是,当提示时输入“dog”或“cat”,任何输入都将导致错误,并且他们将再次被提示输入文件名。 如果输入了“cat”或“dog”,那么将为程序分配等效的文件(dogs.txt或cats.txt),然后系统将运行并将数据加载到程序中。 以下是当前的变量: 以及导致问题的方法: 下面是运行代码时打印

  • 所以我必须在eclipse中为我的类创建一个java项目。分配是创建一个程序,允许用户在程序中输入整数,直到输入某个整数(42)。输入整数(42)后,程序将为1。平均输入的所有数字。2、显示输入的最小值和最大值。3、输入的数字总数。这些必须在不计算(42)的情况下进行计算。这就是我目前所拥有的。我可以从用户那里获得输入,一旦他们输入42,程序就会停止并显示总数,但包括42。我不知道如何为输入添加一

  • 我想知道下面的问题是否有一个简单的解决方案。这里的问题是,我希望在初始条件为真后保留列表中出现的每个元素。这里的条件是,我想删除值大于18的条件之前的所有内容,但保留之后的所有内容。示例 输入: 预期产出: 我知道你可以通过 但是我想一旦找到18以上的第一个值就停止这个操作,然后包括其余的值,不管它们是否满足条件。这似乎是一个简单的问题,但我还没有找到解决办法。

  • 我写了一个代码,获取用户对开始日期的输入

  • 问题内容: 我需要让用户输入一个数字以用作范围的开始,然后输入另一个数字作为范围的结束。起始编号必须为0或更大,结束编号不能大于1000。两个数字都必须被10整除。我找到了满足这些条件的方法,但是如果不满足这些条件,我的程序只会告诉用户他们的输入不正确。我是否可以对它进行编码,以便在用户输入后进行检查以确保满足条件,如果条件没有环回,请再次输入。这是我到目前为止的代码。 问题答案: 轻松做:

  • 我试图用Python做一个简单的计算器。 我希望用户写“and”,然后while循环应该结束。当我运行它并输入随机文本时,while循环工作并显示“重试”。然而,当我实际输入正确答案(“add”)时,while循环并没有结束——相反,它一直在说“再试一次”。 为什么会这样?我的代码怎么了?