如何优化这个逻辑?
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
通常不鼓励使用==
(或!=
),因为会不必要地增加冗长。写入condition1
与condition1 == true
相同,可以使用!condition1
(逻辑NOT
运算符)进行错误测试。
【讨论】:
+1。旁注:在问题中,您可以看到if(condition1 == true)
:我会解释为什么可以省略==true
部分,对于OP 来说可能不是那么容易理解【参考方案2】:
如果你的函数调用返回一些 int、char 等。 你可以使用这个:-
condition1?function():(condition2?function():1);
它说,如果条件1为真执行函数,否则如果条件2为真执行函数,否则什么都不做。 希望清楚。
【讨论】:
以上是关于如何优化这个逻辑?的主要内容,如果未能解决你的问题,请参考以下文章