首页 > 解决方案 > 如何在if语句中检查两者是否不相等?

问题描述

我的代码中有很多这样的:

if ( x1 == x2 && y1 == y2) {
    // do nothing
}
else {
    // do the thing
}

我想知道我是否可以用 if 替换它,而不用 else,以使代码更清晰。我尝试了以下方法:

if ( x1 != x2 && y1 != y2) {
    // do the thing
}

但它不起作用,因为如果只有其中一个不相等,那么整个事情都是错误的。

标签: if-statement

解决方案


使用德摩根定律(a)之一:

not (A and B) = (not A) or (not B)

换句话说:

if (x1 != x2 || y1 != y2) {
    // do the thing
}

如果你不想过多考虑命题逻辑,你可以使用下面的英文变体。

  1. 当两个陈述都为真时,您才不想“那件事” 。
  2. 因此,如果一个或两个陈述都是错误的,你应该做“事情”。

(a)另一种是:

not (A or B) = (not A) and (not B)

推荐阅读