【发布时间】:2019-10-03 15:56:02
【问题描述】:
社区和编程新手。我很好奇为什么这两个逻辑语句在我的程序中是等价的。目前我似乎无法理解这个特定的逻辑,我想了解它为什么会这样工作。
最初,我写了以下内容:
char c;
do {
cin >> c;
cout << "You entered: " << c << "\n";
} while (c != 'Y' || c != 'y' || c != 'N' || c || 'n');
return 0;
}
但是,除非我使用 &&,否则这似乎不起作用。 后来我发现 using or 确实有效,但我的否定肯定是在外面。这是让我感到困惑的两个条件。为什么它们在逻辑上是等价的?
while (!(c == 'Y' || c == 'y' || c == 'N' || c || 'n')); // Will run until c is the following
while (c !='Y' && c != 'y' && c != 'N' && c != 'n'); // Will also run but without being negated.
【问题讨论】:
-
德摩根定理在这里可能是一个有用的搜索词
标签: c++ logic conditional-statements negation