什么是Java中有效的if / else?
我正在尝试使用简单的if / else返回不同的值来检查Java中的偶数。
if (move % 2 == 0) { return "o"; } else { return "O"; }
我知道你可以使用JavaScript
if () : a ? b ;
这可以用在Java中吗?
是的,您可以在Java中使用三元运算符:
return (move % 2 == 0) ? "o" : "O";
只是不要指望它比if
– else
更快。
是的,您可以在Java中使用条件运算符 :
return (move % 2 == 0) ? "o": "O";
它不会让你的程序更快,但它更简洁一点,如果你熟悉条件运算符,你可能会发现它更容易阅读。
但相反,如果您不了解此运算符,则很难猜测代码的作用。
是的你可以。 它被称为三元运算符
用法:
true ? case1 : case2; // returns case1 false ? case1 : case2; // returns case2
而不是“优化” if
与三元运算符?
你应该专注于move % 2 == 0
。 如果move
是整数而不是浮点变量,则可能更快:
if( move & 1 == 0 ) return "E"; else return "O";
位操作通常比除法或模数计算更快。
(conditional) ? if-true-statement : if-false-statement;
是的,可以查看三元运营商的维基百科页面
您无法以更高效或更低效的方式使用if语句。
……还有更多 – 请记住,这不仅适用于if语句:
出于性能原因,您不应该尝试优化使用的表达式 – 编写专注于可读性(以及术语,可维护性)的代码。 原因是有一个JIT(即时编译器)可以优化字节码,并修改你在字节码中指定的指令。
如果你正在考虑使用三元运算符,那么考虑一下,这会导致更难理解代码(如果你是多个人在处理代码)。 如果只是你在处理代码,那就按你的意愿去做 – 是的:
Object var = boolean-expression ? some-value : another-value;
比以下更紧凑:
Object var; if (boolean-expression) var = some-value; else var = another-value;
如果你真的需要这个非常快,这是非常可疑的,你还应该考虑一个查找表:
static final char[] moveChar = {"o", "O"}; // ... return moveChar[move % 2];
但是我不会实现这里提出的任何建议而没有计时,我不会做任何事情,直到事实certificate你现在拥有的东西真的是一个瓶颈,我的意思是它消耗的东西超过了50%的CPU时间。