【问题标题】:What is the purpose of "return methodA() || methodB()" in JavaJava中“返回方法()||方法()”的目的是什么
【发布时间】:2013-02-10 18:57:17
【问题描述】:

我在我正在查看的程序中发现了这段代码 sn-p,有人可以解释这里发生了什么吗?

return methodA() || methodB();

methodA 和 methodB 最终返回布尔值。这是某种异常保护还是这条语句总是返回methodA()?

【问题讨论】:

    标签: java return conditional


    【解决方案1】:

    它调用methodA 并检查结果。如果为真,则立即返回真。否则,它会调用 methodB 并返回它。

    无论如何,这被称为短路运算符。我建议多学习一点 Java 的运算符,因为你可能会经常看到类似的东西。

    如果不需要短路行为,他们可以使用

    return methodA() | methodB();
    

    这将调用这两个方法,对结果执行按位或(相当于逻辑或布尔值)并返回结果。

    【讨论】:

    • 谢谢,非常有用的答案,而且这个问题很难用谷歌搜索
    【解决方案2】:

    表示如果methodA返回true则将其作为返回值,否则使用methodB的返回值。一种级联评估的返回值。

    【讨论】:

      【解决方案3】:

      以下简称:

      boolean a = methodA();
      boolean b = methodB();
      
      if(a) {
          return true;
      }
      else if(b) {
          return true;
      }
      else {
          return false;
      }
      

      如果methodA() 返回true,则不会调用methodB(),而是返回true。如果MethodA() 返回false,则methodB() 将被调用并返回其值。

      【讨论】:

      • 这段代码与OP中的代码存在语义差异;此代码始终调用methodB
      • 参考我的示例代码下面的文本。已经提到过。我试图用清晰的变量和易读性来解释。
      猜你喜欢
      • 1970-01-01
      • 2012-06-13
      • 1970-01-01
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多