或在if操作中进行操作

时间:2019-12-04 12:42:47

标签: c if-statement

我是Native C语言的新手,但没有看到错误。

在这种情况下,我正在尝试使用if操作:

#define PAGE_A 0 
#define PAGE_B 1

int pageID = 0;


if (pageID != PAGE_A || pageID != PAGE_B) {

    //Do something
}

但是它不起作用。如果页面ID = 0或1,则转到“做某事”。如果我只写:

if (pageID != PAGE_A) {

    //Do something
}

有效。如果pageID = 1-x,它会“做某事”,否则就不会...

1 个答案:

答案 0 :(得分:0)

如果两个操作数为true,则逻辑OR运算符||的计算结果为true。

如果pageID为0,则第一个条件为false,但第二个条件为true,因此整个表达式的计算结果为true。同样,如果pageID为1,则第一个条件为true,但第二个条件为false,因此整个表达式的计算结果为true。如果pageID是任何其他值,但条件为true,则整个表达式为true。

您想要的是逻辑AND运算符&&,仅当两个操作数的值为true时,该逻辑才为真。

if (pageID != PAGE_A && pageID != PAGE_B) {

请注意,如果pageID都不为0并且pageID都不为1,则条件为true。