【发布时间】:2021-11-20 05:16:59
【问题描述】:
如何简化下面的 if 语句?,我正在尝试实现可能最有效的代码。
// doSomething based on x value and y value
void doSomething(x int, y int) {
//x not zero and y not zero
if (x != 0 && y != 0) {
//do a
//do b if x greater or equal y
//else do c
if (x >= y) {
//do b
} else (x < y) {
//do c
}
return;
}
//do b if x not zero and y zero
if (x != 0 && y == 0) {
//do b
return;
}
//do e if both x and y zero
if (x == 0 && y == 0) {
//do e
return;
}
}
最简洁有效的简化方法是什么?
【问题讨论】:
-
使用
else if和else语句肯定会有所帮助。如果操作正确,您可以消除所有return语句。 -
在开始简化代码之前,您需要修复代码。例如,你有
if x!=0 && y!=0,在if里面你有if (x==0 && y!=0)。第二个if永远不可能是真的,因为你已经验证了x!=0。 -
查看链接的答案 您可以使用卡诺图不仅用于比较,还可以用于简化布尔表达式 ...
-
这是什么语言的?尽管大多数语言具有相对相似的结构,但它们在条件、模式匹配、switch case、字典等细节上有所不同,并且重写这种 if 森林的“最佳”方式可能因语言而异。
标签: c algorithm if-statement