gpt4 book ai didi

java - 交换 if 语句

转载 作者:搜寻专家 更新时间:2023-11-01 04:03:40 26 4
gpt4 key购买 nike

我正在致力于代码最小化和增强。我的问题是:是否可以在不破坏代码逻辑的情况下交换上面的 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 )

因为在这两个 if 语句之间没有写入变量的操作,我会说是,但我不确定。

有什么想法吗?

最佳答案

我真的不明白你为什么要 (c2 - c1 == 0) 而不是 c1 == c2

为什么不去

if ((c1 == c2) && (c1 != c3)){
do_stuff();
}

if ((c1 != c3) && (c1 == c2)){
do_stuff();
}

路线

请注意,在任何地方将 c1 切换为 c2 都没有任何损失或优势。其中,将最有可能失败的条件放在第一位效率稍高,因为如果第一个条件失败,则不会评估第二个条件。

另请注意,这是一个微优化,您永远不应该考虑速度。

第三个注意事项,如果你的程序没有做任何其他事情,并且如果这个条件不成立就退出,并且你真的想要微优化(你不想)我建议不要在你之前解析参数知道他们是需要的。如果大多数时候 c1 不等于 c2,那么您可以等待解析 c3,直到您知道必须对其进行检查。这是严格的理论。不要在实践中这样做,因为它会使您的代码更难阅读。尽快将所有命令行变量处理为合理的内容会更加清晰。

关于java - 交换 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4062334/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com