程序函数条件与返回的区别

区别是:1、语义上没有差别;2、差异的仅是细微细节;3、完全一致。语义上没有差别,但是当有嵌套if…else逻辑并且代码使用缩进来表示代码块的嵌套结构时,名列前茅种写法(可以称之为“guard”写法)可以使用较少的缩进,因为else是隐含的。

程序函数条件与返回的区别-Worktile社区

1、语义上没有差别

但是当有嵌套if…else逻辑并且代码使用缩进来表示代码块的嵌套结构时,名列前茅种写法(可以称之为“guard”写法)可以使用较少的缩进,因为else是隐含的。

这种写法在if的then块的末尾是个return。由于它位于函数中间而不是末尾,所以也叫做“early return”。这种early return使这个then块可以被看作控制流的终结块,而在这个if之后的部分就会隐含着else(或者说if (!condition))的语义。

2、差异的仅是细微细节

在需要关心的层面上实现相同;有差异的仅是细微细节,可忽略。

Lua给它生成的字节码几乎一样:

Lua 5.2.3:

3、完全一致

如果用Java来写题主的例子,会是:public class xx {

  public static int dum1(boolean t) {

    if (t) return 1;

    return 0;

  }

  public static int dum2(boolean t) {

    if (t) return 1;

    else return 0;

  }

}

然后借助HotSpot Client Compiler(C1)来分析一个“合理的编译器”的做法。最后结果两者完全一样。

延伸阅读:

什么是程序函数?

计算机的函数,是一个固定的一个程序段,或称其为一个子程序,它在可以实现固定运算功能的同时,还带有一个入口和一个出口,所谓的入口,就是函数所带的各个参数,我们可以通过这个入口,把函数的参数值代入子程序,供计算机处理;所谓出口,就是指函数的函数值,在计算机求得之后,由此口带回给调用它的程序。

如sin(30)=0.5,这里的30就是函数的参数值,它将由入口传给计算机,供计算机处理,而0.5就是函数值,它将由出口返回给调用这个函数的程序。另外,我们数学里的函数是固定的那些,而计算机中的函数,可以根据其运算功能,由我们自己去定义,只要是运算功能是固定的,我们就可以把它定义成一个函数,这样可以避免相同的程序段在程序中重复出现,在需要它时,只需要调用相应的函数就行了。这样不仅可以使我们编写的程序精简,而且可以使我们的程序更富有可读性。

文章标题:程序函数条件与返回的区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/38589

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编站长
上一篇 2023年2月17日 上午2:27
下一篇 2023年2月17日 上午2:29

相关推荐

  • 如何确保测试环境与生产环境的一致性

    确保测试环境与生产环境的一致性对我来说有着至关重要的意义,在软件开发和部署过程中,一致性可以帮助避免许多潜在的交付风险。这种一致性关键地依赖于 环境配置、数据同步、部署流程以及监控与日志等核心观点。通过严格控制环境的硬件和软件配置,保证两个环境的硬件规格和软件版本一致;使用数据同步工具或脚本来同步生…

    2023年11月22日
    4900
  • 什么是高通滤波器

    高通滤波器是一种让某一频率以上的信号分量通过,而对该频率以下的信号分量大大抑制的电容、电感与电阻等器件的组合装置。高通滤波器,又称低截止滤波器、低阻滤波器,允许高于某一截频的频率通过,而大大衰减较低频率的一种滤波器。 高通滤波器,又称低截止滤波器、低阻滤波器,允许高于某一截频的频率通过,而大大衰减较…

    2023年1月30日
    22000
  • 如何通过gitlab获取jira的链接

    以下是通过gitlab获取 Jira 链接的步骤:登录 GitLab;打开项目;打开设置;输入 Jira URL 和 API 访问令牌;选择要获取链接的项目;复制链接;粘贴链接。首先需要登录个人的GitLab 账户。如果还没有 GitLab 账户,需要先注册一个账户。 登录 GitLab 首先需要登…

    2023年3月30日
    24400
  • okr怎么定

    定okr的步骤:1、设定目标;2、制定关键结果;3、确定权重和优先级;4、跟踪进展。首先,我们需要设定目标。目标应该是具体、可衡量的,并且与组织的愿景和战略相一致。最好的目标是有挑战性的,但也是现实可行的。 1、设定目标 首先,我们需要设定目标。目标应该是具体、可衡量的,并且与组织的愿景和战略相一致…

    2023年2月27日
    10100
  • 怎么用C++调用MySQL

    步骤是:一、安装 MySQL Connector/C++ 库;二、连接到 MySQL 数据库;三、执行 SQL 查询;四、处理 SQL 查询结果。在使用 C++ 调用 MySQL 数据库之前,需要先安装 MySQL Connector/C++ 库。该库是 MySQL 官方提供的 C++ 接口库,可以…

    2023年5月31日
    37800
  • 电脑办公软件哪个较好用

    电脑办公软件好用的有:1、Worktile;2、通达OA;3、金蝶OA;4、慧点OA;5、PingCode;6、Jira;7、Coding;8、Teambition;9、Trello;10、北极星OKR。其中,Worktie 是团队项目协作系统,能满足团队的任务、项目、文档、IM、目标、 日历、甘特…

    2023年4月20日
    19900
  • DevOps与敏捷开发方法的比较

    DevOps与敏捷开发是两种不同但互补的软件开发方法。本文将从以下几个方面进行比较:1、定义和目的;2、开发流程;3、工具和技术;4、团队结构;5、适用场景。DevOps主要关注软件开发周期的自动化和持续集成,而敏捷开发则注重快速迭代和客户反馈。两者之间存在一些明显的差异,但也有可能在某些项目中共同…

    2023年9月13日
    11700
  • 哪些技术正推动可穿戴设备的创新

    可穿戴设备的创新正被一系列尖端技术所推动。1、微型化技术使得可穿戴设备更加轻巧便捷;2、增强现实(AR)与虚拟现实(VR)技术将现实世界与虚拟信息无缝结合;3、柔性电子技术让设备更加舒适地贴合身体;4、能量收集与无线充电技术确保持续的电源供应;5、生物识别技术提高了健康监测的准确性与实用性;6、高速…

    2023年11月30日
    700
  • java newCachedThreadPool线程池使用在什么情况下

    java newCachedThreadPool线程池的使用情况:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 一、Java线程池 Java通过Executors提供四种线程池,分别为: 1、newCachedT…

    2023年2月9日
    21700
  • 什么是图灵机

    图灵机又称图灵计算机指一个抽象的机器,是,英国数学家艾伦・麦席森・图灵于1936年提出的一种抽象的计算模型,即将人们使用纸笔进行数学运算的过程进行抽象,由一个虚拟的机器替代人类进行数学运算。 图灵机,又称图灵计算机指一个抽象的机器,是,英国数学家艾伦・麦席森・图灵(1912―-1954年)于1936…

    2023年2月14日
    34300

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部