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

Best practice boolean logic multiple not equal to

在编写包含多个 'not equal to' 子句的布尔语句时,我相信有两种潜在的语法可以实现这一点,这两种语法在功能上是等效的。 c# 示例:

1.

x != 1 && y != 1

2.

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

为了保持一致并确定最佳实践,是否有任何明确的advantages/disadvantages?

谢谢

它们确实是一样的,唯一的区别是可读性。通常我在代码中更频繁地看到第一个选项,我更喜欢这个(对我来说,更清楚的是你不希望它们等于某个东西)。但是,这是个人喜好。如果你愿意,你可以选择第二个,但要确保在整个项目中保持一致以避免混淆。

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

您应该根据问题的性质决定什么更有意义,什么对其他程序员更容易理解。

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

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

如果您正在从事个人项目,您可以随心所欲。