我是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,它会“做某事”,否则就不会...
答案 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。