Java && ||在 RETURN 语句中?

2024-03-30

我正在查看一些 Java 算法示例,并且在递归方法中遇到了以下代码片段:

boolean subTree(TreeNode t1, TreeNode t2) {
    if (t1 == null) {
        return false;
    }
    if (t1.value == t2.value) {
        if (treeMatch(t1, t2))
            return true;;
    }
    return (subTree(t1.left, t2) || subTree(t1.right, t2));
}

不知道(也从未见过)||之前在 return 语句中使用过,更不用说递归语句了,真的让我很困惑。我将代码复制到 Eclipse 中查看它是否有效,结果确实如此。然后我替换了 || with && 和 Eclipse 似乎并没有被它困扰。从逻辑上讲,我理解这个递归代码应该沿着 TreeNode t1 的左右子树继续向下,但我正在寻找这个 Java 语法如何工作背后的更多理论解释。

谁能解释一下 || 背后的含义Java 的 return 语句中的 && ?从递归的角度来看,这意味着什么?只有与递归结合使用才有意义吗?


正如方法签名中所定义的,您必须返回一个boolean。因此,之后return关键字,您必须提供一个boolean 或一个表达式其评估为boolean.

在你的情况下你有这样的表达(subTree(t1.left, t2) || subTree(t1.right, t2));其中两个操作数将被评估为boolean你将应用一个逻辑OR仅当第一个评估结果为false。如果第一个操作数的计算结果为true第二个将不会被评估并且true将退休。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java && ||在 RETURN 语句中? 的相关文章

随机推荐

  • Android NDK:使用预编译静态库进行链接

    我正在尝试将 Jnetpcap 移植到 Android 以便使用它来解析 pcap 文件 Jnetpcap 是使用 JNI 的 libpcap 的 java 包装器 我已经使用 android 的源代码树将 libpcap 编译为静态库 当
  • 需要 EJB 3.1 Singleton + JPA + JSF 设计建议

    给定 简单的 JSF web 应用程序 无 Seam 让 JSF bean 调用几个 EJB 而 EJB 又加载并保存 JPA 实体 我想要的是使用 Singletonejb 和注入的注释EntityManager 代替 EntityMan
  • 将分析仪连接到 Howler sound

    我已经尝试将分析仪连接到 Howler 声音一段时间了 但没有成功 我像这样创建我的嚎叫声音 var sound new Howl urls media sounds genesis mp3 然后我使用 Howler 全局上下文创建分析器
  • 如何防止应用程序被标记为可疑

    我有一个使用 Visual Studio 2012 用 C 编写的 NET 应用程序 我通过自己的网站推广该应用程序并提供下载 在 Chrome 中下载它时 我收到一条消息 指出我的应用程序 不常下载 可能很危险 此外 当我下载自己的应用程
  • 处理 ListView 中的 MouseMove、MouseDown、MouseUp 事件以拖动无边框表单

    我在用着MouseMove MouseUp MouseDown移动无边界表单的事件 如此处的示例 它工作得很好 但对于 ListView 只有当我单击列表中的项目 其文本 时它才有效 如果我单击不包含项目的 ListView 的空间 它将不
  • 警告:javax.persistence.spi::未找到有效的提供程序

    我收到警告 WARNING javax persistence spi No valid providers found 我有带有 JPA 注释的代码 但我只需要它们与 JOOQ 一起使用 如何去掉这个警告呢 添加我的 gradle 文件
  • 为什么添加“Eq”类型约束而不使用“==”?

    因此 我有一个非常简单的函数 它接受两个参数 第一个是一小时 0 到 23 之间 第二个是一分钟 0 到 59 之间 此函数返回小时加一分钟 并以漂亮的样式格式化小时 举例来说 hour 11 12 return 11 heures et
  • 使用 find_by_id 获取 RSpec 中不存在的记录时引发 RecordNotFound

    我在 products controller spec rb 中编写了此规范 旨在测试在不存在的记录上调用 destroy 时的重定向 it deleting a non existent product should redirect t
  • JavaScript+Phonegap+Android:screen.width 返回错误(几乎随机)值

    使用 deviceready 事件启动应用程序后 Android 上的 Phonegap 应用程序在 ZTE Blade 本机 800px 上返回错误的 screen width window innerWidth 相同 值 我得到的宽度值
  • Amazon AWS Fargate 任务静态 IP 地址

    在 AWS 上迁移期间 我在 AWS 上创建了一个新集群 并使用 Fargate 方法部署了多个 docker 应用程序 每次更新任务定义期间 都会在服务内启动新任务 并从 AWS 公共 IP 池分配新的公共 IP 有没有关于如何将静态 I
  • 如何更改 NSTimer 的计时?

    我有以下代码 timer NSTimer scheduledTimerWithTimeInterval 0 50 target self selector selector onTimer userInfo nil repeats YES
  • 在 ASP.NET MVC Web 应用程序中包含预编译视图

    在 ASP NET MVC Web 应用程序中包含预编译视图 参考 http ofps oreilly com titles 9781449320317 ch ReusableUI html 请参阅上面的博客 我正在尝试在 MVC 3 中创
  • LMAX Disruptor最简单、最实际的示例代码

    我希望我能得到最简单的示例代码 它将展示如何使用 LMAX Disruptor http code google com p disruptor 不幸的是 每一段代码都已经过时了 有人知道 我在哪里可以找到最新的小指南 最好没有 DSL 这
  • EntityFramework 同表多对多关系

    我有一个名为 产品 的表 其中显然包含产品 但是 我需要创建相关产品 所以我所做的就是创建一个名为product related 的连接表 它有两个PK ProductID 来自 Products 表 RelatedID 也来自 Produ
  • 我可以在 Android 开发中使用 javax.script 吗?如果可以,如何使用?

    我在包含 javax script 时遇到了一些麻烦在 Android 项目中 我需要它 这样我就可以在 JavaScript 中使用 eval 函数 以便有效地解析算术函数 而无需自己构建解析器 我在这方面完全没有经验 也没有很多时间 我
  • 确定我的 App Engine 代码正在哪个项目 ID 上运行

    在 App Engine 应用程序中 有没有办法确定 GAE App Engine 实例正在运行的项目 ID 我想访问运行 App Engine 实例的同一项目中的大型查询表 如果可能的话 我不想对其进行硬编码或将其包含在另一个配置文件中
  • Prolog 程序从列表中删除每个第 n 个元素

    您能帮我解决以下问题吗 编写三元谓词delete nth从列表中删除每个第 n 个元素 样本运行 delete nth a b c d e f 2 L L a c e false delete nth a b c d e f 1 L L f
  • JavaFX 2 自动列宽

    我有一个 JavaFX 2 表 显示人们的联系方式 假设有三列 名字 姓氏和电子邮件地址 当我的应用程序启动时 它会在表中填充有关系统中已有人员的几行数据 问题是列宽都是相同的 大多数时候 名字和姓氏会完整显示 但电子邮件地址会被剪掉 用户
  • 两个属性与一个实体共享相同的 OneToMany 关系 Symfony2

    首先描述一下我的情况 我正在使用 Symfony2 但我的实体之间的关系存在问题 我有两个链接在一起的实体 这两个实体是AssociationQuestion and AssociationPossibleAnswer 我目前正在创建一个调
  • Java && ||在 RETURN 语句中?

    我正在查看一些 Java 算法示例 并且在递归方法中遇到了以下代码片段 boolean subTree TreeNode t1 TreeNode t2 if t1 null return false if t1 value t2 value