我是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,它会“做某事”,否则不会...
最佳答案
如果任一操作数为true,则逻辑OR运算符||
的计算结果为true。
如果pageID
为0,则第一个条件为false,但第二个条件为true,因此整个表达式的计算结果为true。同样,如果pageID
为1,则第一个条件为true,但第二个条件为false,因此整个表达式的计算结果为true。如果pageID
是任何其他值,但条件为true,则整个表达式为true。
相反,您需要的是逻辑AND运算符&&
,仅当两个操作数都为true时才为true。
if (pageID != PAGE_A && pageID != PAGE_B) {
读出来,如果
pageID
都不为0并且pageID
都不为1,则条件为true。关于c - 或如果在操作中进行操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59176317/