我有以下代码:
bool s = true;
for (...; ...; ...) {
// code that defines A, B, C, D
// and w, x, y, z
if (!(A < w) && s == true) {
s = false;
}
if (!(B < x) && s == true) {
s = false;
}
if (!(C < y) && s == true) {
s = false;
}
if (!(D < z) && s == true) {
s = false;
}
}
这段代码运行良好。但是,出于几个(不重要的)原因,我想更改代码,以便我可以启动 s = false;
并在 if 语句中将其设置为 true。它尝试了以下操作:
bool s = false;
for (...; ...; ...) {
// code that defines A, B, C, D
// and w, x, y, z
if (A >= w && s == false) {
s = true;
}
if (B >= x && s == false) {
s = true;
}
if (C >= y && s == false) {
s = true;
}
if (D >= z && s == false) {
s = true;
}
}
但是,由于上面的代码正在运行,因此无法正常运行。我知道逻辑中某个地方的想法是错误的,但我不知道在哪里。 anbyone 是否看到我可能明显的错误?
编辑:添加了另外三个 if-statemets。想念他们,因为他们被评论掉了。
最佳答案
De Morgan's laws说,您还应该将 &&
更改为 ||
。
关于c++ - 翻转逻辑表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19887834/