Upv*_*ote 3 java if-statement minimize
我正致力于代码最小化和增强.我的问题是:是否可以交换上面的if语句而不破坏代码的逻辑?
int c1 = Integer.parseInt(args[0]) ;
int c2 = Integer.parseInt(args[1]) ;
int c3 = Integer.parseInt(args[2]) ;
if (c2-c1==0)
if ( c1 != c3 )
Run Code Online (Sandbox Code Playgroud)
因为两者之间的if语句都不是写变量的操作,我会说是,但我不确定.
有任何想法吗?
Mar*_*ijn 10
我真的不明白你为什么要(c2 - c1 == 0)而不是c1 == c2
为什么不去
if ((c1 == c2) && (c1 != c3)){
do_stuff();
}
Run Code Online (Sandbox Code Playgroud)
要么
if ((c1 != c3) && (c1 == c2)){
do_stuff();
}
Run Code Online (Sandbox Code Playgroud)
路线
作为一个注释,在任何地方切换c1 c2都没有任何惩罚或优势.在上述情况中,首先放置最可能失败的条件稍微更有效,因为如果第一个条件失败则不会评估第二个条件.
还要注意,这是一个微优化,你永远不应该考虑速度.
第三个注意事项,如果你的程序没有做任何其他事情,并且如果这个条件不成立则退出,并且你确实想要微优化(你不这样做)我建议你先知道它们之前没有解析参数需要.如果c1大部分时间都不等于c2,那么你可以等到解析c3,直到你知道你必须检查它为止.这是严格的理论.不要在实践中这样做,因为它会使你的代码更难阅读.尽可能快地将所有命令行变量处理为合理的事情要清楚得多.
| 归档时间: |
|
| 查看次数: |
858 次 |
| 最近记录: |