首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪个"if“结构更快--语句还是三元运算符?

哪个"if“结构更快--语句还是三元运算符?
EN

Stack Overflow用户
提问于 2011-01-17 00:57:29
回答 5查看 90.3K关注 0票数 85

java中有两种类型的if语句:if {} else {}和速记:exp ? value1 : value2。是一个比另一个快,还是它们一样?

声明:

代码语言:javascript
复制
int x;
if (expression) {
  x = 1;
} else {
  x = 2;
}

三元运算符:

代码语言:javascript
复制
int x = (expression) ? 1 : 2;
EN

回答 5

Stack Overflow用户

发布于 2011-01-17 01:00:26

您的两个示例都可能编译成相同或几乎相同的字节码,因此在性能上应该没有差别。

如果在执行速度上存在差异,您仍然应该使用最常用的版本(第二个版本用于根据一个简单的条件和两个简单的子表达式分配单个变量,而第一个版本用于执行更复杂的操作或不适合一行的操作)。

票数 10
EN

Stack Overflow用户

发布于 2011-01-17 01:00:33

这些都是一样的。它们都相当快,通常在10-30纳秒左右。(取决于使用模式)这个时间框架对您重要吗?

你应该做你认为最清楚的事情。

票数 8
EN

Stack Overflow用户

发布于 2011-01-17 01:12:51

只是补充一下所有其他的答案:

第二个表达式通常称为第三/三元运算符/语句。它可能非常有用,因为它返回一个表达式。有时,对于典型的简短语句,它会使代码更清晰。

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

https://stackoverflow.com/questions/4706696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档