c++ - 翻转逻辑表达式

标签 c++ if-statement logic

我有以下代码:

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/

相关文章:

c++ - 解析字符串对失败。恶灵 x3 语法

c++ - 如何检查给定调用站点的重载解决方案集

c++ - 如何获取物理存储设备列表?

javascript - 在 HTML 标记上切换类时更改 Swiper.JS 设置的设置(自动播放、效果、循环)

model-view-controller - 使用CodeIgniter的模型或 Controller 中的逻辑?

c++ - 从另一个进程在用户模式下回调,没有额外的线程

Java - 为什么当用户输入不需要的内容时不显示错误对话框?

带有 if else 语句的 Java Scanner 输入

sql - 在 SQL 中的字符串中查找不匹配的大括号

algorithm - 回答这种调度算法场景的最佳方式是什么?