【问题标题】:Is it possible to use && and || operators in the same if statement in Java?是否可以使用 && 和 || Java中相同if语句中的运算符?
【发布时间】:2013-11-02 09:58:57
【问题描述】:

我正在尝试检查 case1 和或 case2

并想出了以下代码

if(case1 && || case2)..

但它似乎不起作用,甚至可以使用这样的两个运算符吗?如果没有,是否有任何解决方法?

【问题讨论】:

  • 这也没有任何意义......你有没有想过你想要达到的目标? -> 你不能像这样使用运算符。你知道布尔代数吗?
  • 那么您希望 case1 和 case2 为真,或者 case1 或 case2 为真?你的说法没有任何意义
  • 和 + 或?怎么回事?你知道这是布尔值吗?
  • 我刚刚意识到我的问题是多么愚蠢,我想我试图实现的目标是,如果某件事与 case1 一起出现,或者只是 case1 或 case2
  • 如果 case1case2 是布尔值(它们必须用作 &&|| 的操作数),您可以检查其中一个是否为真(不包括- 或)只需执行if (case1 != case2)

标签: java operators


【解决方案1】:

没有。 case1 AND case2 必须为 true OR 其中之一。

if (case1 || case2) {....}

【讨论】:

  • 我没有意识到或运营商已经实现了,谢谢
  • @Ilja:你似乎对 OR 有一个根本性的误解。 OR 没有“实现 AND”,只是“true OR true”为真;这是 OR 的属性,一直是,永远都是。
【解决方案2】:

|| 已经是“和/或”了。您需要努力获得“异或”(又名 XOR)。

【讨论】:

    【解决方案3】:

    AND/OR 与 OR 相同。你要case1 || case2:

    case1    case2   case1 and case2   case1 or case2    case1 and/or case2
      0        0            0                0                 0
      0        1            0                1                 1
      1        0            0                1                 1
      1        1            1                1                 1
    

    如您所见,这只是一个 OR。

    True OR true 为真,这就是 OR 的工作原理。见http://en.wikipedia.org/wiki/Logical_disjunction

    没有“AND/OR”之类的东西。听起来您可能将 OR 与异或混淆了。

    【讨论】:

      【解决方案4】:

      它不起作用,你也不需要这个。

      有三个条件:

      1. 两个条件都为真
      2. 其中任何一个都是真的
      3. 两者都不是真的

      对于条件 1 && 运算符

      对于条件 2 || 运算符

      对于条件 3 ~ 的 2 条件。由于所有内容都是互斥的,因此您不需要您所说的。

      【讨论】:

        猜你喜欢
        • 2013-05-30
        • 1970-01-01
        • 1970-01-01
        • 2011-07-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多