最佳实践布尔逻辑倍数不等于

时间:2017-03-30 08:39:36

标签: c# sql boolean equality

当编写一个多个'不等于'的布尔语句时条款我认为有两种可能的方法来实现这一点,两者在功能上都是等价的。 c#示例:

1

x != 1 && y != 1

2

!(x == 1 || y == 1)

为了保持一致并决定最佳实践,两者都有明显的优点/缺点吗?

由于

4 个答案:

答案 0 :(得分:2)

它们确实是一样的,唯一的区别是可读性。通常我会在代码中更频繁地看到第一个选项而我更喜欢这个选项(对我来说,更明显的是你不希望它们与某些东西相等)。但是,这是个人偏好。如果你想要你可以使用第二个,但只是确保你在整个项目中保持一致,以避免混淆。

答案 1 :(得分:2)

从逻辑上讲,根据De Morgan's laws,这两种形式完全相同。

你应该根据问题的本质来决定什么更有意义,以及其他程序员更容易理解什么。

答案 2 :(得分:0)

你的问题没有最佳实践,你的例子是简单的布尔代数任务,用逻辑析取表达式改变逻辑连接。 在现实生活中,在应用程序开发中,尤其是在团队项目中,开发人员使用预定义的约定,例如,如果表达式可以被修改,但它变得难以读取,他们使用最适合真实条件表达式的语法,如果条件听起来像“if不是A而不是B“他们写道!A&& !B中。   另一方面,如果存在对性能敏感的关键算法,则应该记住逻辑表达式最短执行方式的规则。例如,在мostprogaramming语言中,在您的示例中表达式 !(x == 1 || y == 1)将始终计算运算符x == 1y == 1,而不是x != 1 && y != 1,如果x != 1满足条件,那么y != 1赢了“计算。

答案 3 :(得分:0)

您提供的两个示例没有错。它们都很好,这一切都归结为可读性和偏好。如果您在团队中工作,则应遵循团队标准,而不是使代码过于复杂。这确保了一个常数,每个人都能够轻松阅读和理解逻辑。这提高了工作效率并加快了调试速度。

如果你正在从事个人项目,你可以做任何你喜欢的事。