Sop*_*ner 1 java if-statement ternary-operator
在Java中,如果我在常规if中使用三元if运算符,例如:
if ((x > y - z) ? true : callLongWaitedMethod(many, parameteres)) {
loveTeddyBear();
}
Run Code Online (Sandbox Code Playgroud)
如果x > y - z
确实如此,它会执行callLongWaitedMethod 吗?我希望它不是,我可以使用这个漂亮的声明,乍一看稍微复杂,但与额外的布尔变量比较更有吸引力:
boolean b = (x > y - z) ? true : callLongWaitedMethod(many, parameteres);
if (b) {
loveTeddyBear();
}
Run Code Online (Sandbox Code Playgroud)
特别是如果我在一个循环遍历的大循环中使用它,那么从性能的角度来看每次创建布尔值都不会很好,而如果我在循环外声明布尔值,我可能会因为循环的大尺寸.
这将按你的意愿工作,但简单地使用普通||
算子来完成完全相同的结果会更清楚:
if ((x > y - z) || callLongWaitedMethod(many, parameteres)) {
loveTeddyBear();
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
177 次 |
最近记录: |