如果条件为真,则if语句评估为false

时间:2019-04-09 01:39:59

标签: c++ c++11

即使计数器为4,我的程序也会跳过if语句counter==4。当我尝试调试时,它将永远不会检查if语句,每次都会完全跳过它。

    int num;
    int counter = 1;
    while (file >> num) {
        if (counter == 1) {
            //code
        }
        if (counter == 2) {
            //code
        }

        if (counter == 2) {
            //code
        }

        if (counter == 4) {   //completely skips this if
            counter == 1;
        }
        counter++;
    }

1 个答案:

答案 0 :(得分:0)

您有这件作品:

    if (counter == 4) {   //completely skips this if
        counter == 1;
    }

它不会被跳过(从您发布的代码中可以看到)。它什么也没做。将比较 counter到1,然后丢弃结果布尔值。

要解决此问题,请切换至分配,请使用counter = 1

您的编译器应该警告您“代码无效”。打开警告(对于 gcc clang 使用-Wall -Wextra,对于Visual Studio而言,使用/W3/W4都可以),并且修复它们