如何优化这个逻辑?

Posted

技术标签:

【中文标题】如何优化这个逻辑?【英文标题】:How do I optimize this logic? 【发布时间】:2015-08-24 10:25:11 【问题描述】:

我有以下场景:-

if( condition1 == true )

/*
a code block or fuction call
*/

else

 if( condition2 == true )
 
 /*
 same code block or function call
 */
 

这里,如果条件 1 为真,则必须执行特定的代码块。 否则,如果条件 1 为假,但如果条件 2 为真,则还必须执行相同的代码块。 如何以有效的方式编写此逻辑,以免两次写入相同的块,或两次调用相同的函数。

【问题讨论】:

如果在两种情况下都调用相同的代码块,为什么要使用 if? @OlimpiuPOP 因为如果两个条件都为假,代码不会被执行。 【参考方案1】:

用一个简单的逻辑OR(任何语言的非常基本的东西)。

if(condition1 || condition2) 
    // Code

通常不鼓励使用==(或!=),因为会不必要地增加冗长。写入condition1condition1 == true 相同,可以使用!condition1(逻辑NOT 运算符)进行错误测试。

【讨论】:

+1。旁注:在问题中,您可以看到if(condition1 == true):我会解释为什么可以省略==true 部分,对于OP 来说可能不是那么容易理解【参考方案2】:

如果你的函数调用返回一些 int、char 等。 你可以使用这个:-

condition1?function():(condition2?function():1);

它说,如果条件1为真执行函数,否则如果条件2为真执行函数,否则什么都不做。 希望清楚。

【讨论】:

以上是关于如何优化这个逻辑?的主要内容,如果未能解决你的问题,请参考以下文章

.NET 代码优化 聊聊逻辑圈复杂度

如何看待以及理解Python的这种尾递归优化

php ||和 && 逻辑优化

如何在SpringBoot中使用异步方法优化Service逻辑提高接口响应速度?

MySQL的索引优化,查询优化

JavaScript 代码逻辑判断的优化