【问题标题】:multiple conditions (or) in while loop - javawhile循环中的多个条件(或) - java
【发布时间】:2021-05-19 06:33:35
【问题描述】:

我的 while 循环目前看起来像这样:

    while((0 <= trader.getWallet()) || (0 <= days)) {  
// do something
}

所以如果这两个条件中的任何一个在循环中的某处为假,程序将退出,但我的程序似乎并没有只听第二个条件,但如果我只是把它们放在一起,它会单独听它们一次一个地进行测试,所以我写这个while循环错了吗?

【问题讨论】:

  • 这两个条件中的任何一个在循环开始时都可能为假,因为它是逻辑 OR,而不是您正在使用的逻辑 AND
  • 您确定在这两种情况下您的意思都是“小于”吗?大声朗读整篇文章,确保它有意义。
  • @chrylis-cautiouslyoptimistic- 调试布尔表达式的好方法
  • 请注意,大多数人会写days &gt;= 0而不是0 &lt;= days
  • 很可能是短路了。

标签: java while-loop


【解决方案1】:

在逻辑或的情况下,如果两个条件中的任何一个为真,则整个语句应执行为真。 在逻辑与的情况下,两个条件都必须为真才能使整个语句为真。 所以,你可以使用逻辑与

while((trader.getWallet>=0()) && (days>=0))

【讨论】:

    【解决方案2】:

    如果第一个条件为真,则 OR 不会计算第二个条件,

    应该是

    while(trader.getWallet() > 0 && days > 0) {  
       // do something
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-14
      • 2013-08-07
      • 1970-01-01
      • 2013-06-30
      • 1970-01-01
      • 2015-09-29
      • 2016-03-30
      • 1970-01-01
      相关资源
      最近更新 更多