有没有办法做这种情况:
if ( x > 3 || y > 3 || z > 3 ) {
...
}
Run Code Online (Sandbox Code Playgroud)
我在考虑一些按位操作但却找不到任何东西.
我在Google上搜索过,但很难找到与这类基本问题相关的内容.谢谢!
编辑 我在一般编程中思考.根据特定的语言会有所不同吗?比如C/C++,Java ......
你有什么是好的.假设C/C++或Java:
查看第二点 - 如果有的话x
,y
或者z
更可能是这样>3
,那么将它们放在表达式的左边,这样它们首先被评估,这意味着其他可能根本不需要进行评估.
为了论证的缘故,如果你必须进行逐位检查x|y|z > 3
,但通常不会减少,所以它(可能是*)总是2位运算和比较,其他方式可以和1比较一样快.
(*这是语言律师到达的地方添加评论为什么这个编辑是错误的,并且可以优化按位版本;-)
这里有一条评论(现已删除),"新程序员不应该担心这种优化水平" - 这是100%正确的.写下易于理解,工作代码,然后在你知道它"太慢"之后尝试从中挤出性能.