首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >一个或-声明的优先级重要吗?

一个或-声明的优先级重要吗?
EN

Stack Overflow用户
提问于 2018-01-04 00:29:44
回答 4查看 627关注 0票数 3

假设我有一段代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
age = 21;
allowedFromParents = false;
if (age >= 18 || allowedFromParents == true)
{
    //go drink
}

当我调试这部分代码时,当它检查第一部分(这是正确的)时,它已经在语句中运行,而不需要检查另一条语句。

现在,这只是一个简单的条件,但是如果条件语句要计算的要大得多,在一个频繁的循环中,其中一个会比另一个更有可能返回一个真。

那么,条件的顺序对性能有影响吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-01-04 00:37:55

你现在看到的是短路评估。

正如您所猜测的那样,条件语句的顺序可能会影响性能:如果其中一个语句是,则计算起来要重得多,并且它是在一个紧循环中完成的,那么可以考虑将另一个语句放在首位。

然而,

过早的优化是一切邪恶的根源-- DonaldKnuth

这意味着,除非在这段代码中测量了的性能瓶颈,否则编写时应该考虑到可读性,而不是性能。

票数 4
EN

Stack Overflow用户

发布于 2018-01-04 00:32:17

是的,这很重要。如果第一个条件是真的,那么它将停止评估其余的条件。换句话说,右边的条件可能是不计算的。

如果其中一个操作数或两个操作数都为真,则逻辑OR运算符返回布尔值true,否则返回false。在计算之前,操作数被隐式转换为bool类型,结果是bool类型。逻辑OR具有从左到右的结合性。

https://msdn.microsoft.com/fi-fi/library/f355wky8(v=vs.120).aspx

票数 4
EN

Stack Overflow用户

发布于 2018-01-04 00:48:24

将需要更多时间执行的条件放在右边,因此如果左边的条件计算为true,则不会检查第二个条件。

是的,如果您处于一个紧密的循环中,在最坏的情况下会迭代上千次,那么它肯定会提高性能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48091365

复制
相关文章
Windows凭据不工作
如果不是敲错IP、用户名、密码,报凭据不工作,一般情况下执行这几句命令后重启远程服务就正常了
Windows技术交流
2021/06/15
6.2K0
RDP你的凭据不工作/RDP密码不刷新
如果你不属于上述的情况,请查看:https://learn.microsoft.com/zh-cn/windows-server/remote/remote-desktop-services/troubleshoot/rdp-error-general-troubleshooting#check-whether-a-group-policy-object-gpo-is-blocking-rdp-on-a-local-computer
阿龙w
2022/12/02
12.7K0
RDP你的凭据不工作/RDP密码不刷新
Files Photo Gallery单文件-文件管理器
安装文件应用程序非常简单,因为它只是一个文件。只需下载最新的文件index.php,将其放入您要查看或管理的文件夹中并加载到浏览器中。
Dabenshi
2023/05/26
8470
[grub2-filemanager] grub下的文件管理器
grub2-filemanager是一个兼具文件浏览的加载引导器,其默认的配置可引导linux类常见的系统(热门linux、openbsd、Android-X86)。
繁花云
2018/07/31
4.4K0
[grub2-filemanager] grub下的文件管理器
艾特文件管理器 1.8
艾特文件管理器 1.8 ---- 更新说明:(1.8.0) →加入批量复制功能 →加入全选消选功能 →全格式的解压支持(unix x86) →相信有了本次更新我的全格式解压实现方式及某个我编译的文件很快本功能就会被各位高手复制! ---- 运行环境: Php5+ Linux(支持较好) 需要模块: Session Iconv 安装说明: 首次使用访问文件管理器自动提示安装(创建管理号),如果直接出现登录页面请删除userinfo.php文件后访问文件管理安装。 功能介绍: *文件详情查
刺_猬
2018/06/21
1.3K0
轻量级PHP单文件在线文件管理器
在我们使用各种主机或者vps时,很多情况下都需要 ftp 进行连接,这是件麻烦事,费时又费力,今天给大家安利一款炒鸡棒的轻量级 PHP 单文件在线文件管理器 Tinyfilemanager
王图思睿
2021/06/16
4.6K0
128 天不上班不工作:照样领工资 9.5 万
原告:北京和风畅想科技有限公司 被告:杜某,男,1988年出生 和风畅想公司向法院提出诉讼请求: 1、判决无须撤销《解除劳动关系通知书》,双方无需继续履行劳动合同; 2、判决和风畅想公司无须向杜某支付自2020年2月29日至2020年7月5日期间工资收入损失95172.41元。 事实和理由: 2020年11月2日,和风畅想公司收到北京市朝阳区劳动人事争议仲裁委员会作出的京朝劳人仲字[2020]第16281号裁决书(以下简称“第16281号裁决书”),和风畅想公司不服该裁决。 不服裁决理由: 一、第1628
云头条
2022/10/09
2.2K0
128 天不上班不工作:照样领工资  9.5 万
使用工作队列管理器(一)
工作队列管理器是的一项功能,使能够通过以编程方式将工作分配给多个并发进程来提高性能。在引入工作队列管理器之前,可能已经使用 JOB 命令在应用程序中启动多个进程并使用自定义代码管理这些进程(以及任何导致的故障)。工作队列管理器提供了一个高效且直接的 API,使能够卸载流程管理。
用户7741497
2022/08/03
4160
使用工作队列管理器(二)
可以指定要使用的并行worker jobs的数量,也可以使用默认值,这取决于机器和操作系统。此外,如果已创建类别,则可以指定应从中获取job的类别。
用户7741497
2022/08/03
5430
使用工作队列管理器(四)
通常,初始化一组工作程序,将工作项排队,然后等待工作程序完成工作项。但是,可能会遇到工作人员作业完成工作项所需的时间比预期更长的情况,或者无法将单个进程专门用于等待。因此,工作队列管理器使能够将工作队列与进程分离,然后将工作队列附加到同一进程或不同的进程。
用户7741497
2022/08/03
3650
重新设计的文件管理器
软件版本:Sliverworkspace 2.0.386439 重新设计的文件管理器,大幅提高性能,操作更便捷; 支持文件上传、重命名、 移动、删除 拖动文件时弹窗等待。 Bug修复: 修复使用文件管理器服务器节点连接没有及时释放的bug; 解决之前前端渲染速度过慢问题,更换底层渲染逻辑。 视频内容
SliverWorkspace
2022/05/08
8000
使用工作队列管理器(三)
一个类别是一个独立的worker jobs池。当初始化一组worker jobs时,可以指定提供worker的类别。如果集合中的任何worker jobs在执行work项时请求额外的worker jobs,则新的worker jobs来自同一类别。
用户7741497
2022/08/03
4620
win10 uwp 打开文件管理器选择文件
本文:让文件管理器选择文件,不是从文件管理器获得文件。 假如已经获得一些文件,那么如何从文件管理器选择这些文件? 使用方法很简单。
林德熙
2018/09/18
1.9K0
win10 uwp 打开文件管理器选择文件
Postgresql文件管理器一图流
注意: md_seg_fds是一个指针数组,每一个指针指向当前表存FD的一块空间,当前表有多个文件的话,这块空间就会有多个_MdfdVec,每个_MdfdVec记录当前文件的vfd和当前文件的segments号(segments表示切割后第几个文件)
mingjie
2022/05/12
9790
Postgresql文件管理器一图流
gitignore不忽略指定文件
背景 在使用腾讯 IMSDK 时, 通过Pod依赖了对应的库, Pods 文件夹在.gitignore中配置忽略, 但是需要修改IM SDK 的源代码, 又怕重新安装后被覆盖, 所以想要针对 腾讯
莫空9081
2023/02/15
3.3K0
webpack的watch选项不工作原因分析
今天尝试将以前创建的一个前端项目改为webpack编译,该项目使用了VueJS v2.0,原来是编写gulp脚本完成构建的。很自然就直接用vue-cli来搞定这个事了。 使用vue-cli创建项目 因为以前用过webpack,而vue-cli创建的项目底层其实还是使用webpack构建的,所以使用起来还是很简单的。 # 使用yarn,这个命令是跟npm兼容的,但速度快很多,而且可以保证依赖包版本的一致性,强烈推荐 yarn install --global vue-cli vue-cli webpack v
jeremyxu
2018/05/10
4.2K0
Java文件上传管理器 控制台
上传文件下载管理器项目技术 JDBC + IO + Socket 实现功能 客户端注册:通过输入用户名,密码,确认密码并且校验完成以后将用户信息储存在数据库中。 客户端登录:通过输入用户名和密码到数据库中校验,校验完成进入文件上传下载管理器。 上传文件:通过输入上传文件的路径上传到数据库,支持多个文件上传。 查看文件:通过登录的用户名查找上传的文件。 下载文件:通过输入文件的编号和下载的路径,从数据库进行下载。 删除文件:通过输入文件的编号进行单个文件的删除。 (PS:这次花了一天才写完,不过收获也很多,不
企鹅号小编
2018/02/28
1.4K0
Java文件上传管理器 控制台
SyncBird pro for mac 3.9 iphone文件管理器
Apple iTunes的智能替代产品,可将iPhone文件传输,设备备份和存储清理功能全部集中在一个地方。
用户1517359
2023/03/30
8410
dotnet publish 不生成pdb文件
随着项目的体积越来越大,导致publish的时候文件越来越多,然而生产环境中其实pdb调试文件并没有什么作用(remote debug)除外,所以也就灵机一动想着是否可以不生成呢?
全栈程序员站长
2022/08/26
1.2K0
点击加载更多

相似问题

暂停for循环,直到按下键

222

:暂停循环直到按下键

23

循环,直到按下键并重复。

20

循环直到释放键或直到按下键

128

暂停程序,直到按下键

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文