繁体   English   中英

为什么OR逻辑运算符(||)不起作用?

[英]Why doesnt the OR logical operator( || ) work?

我试图在do-while语句中使用OR逻辑运算符,但由于某些原因,它不起作用。

它不使用OR逻辑运算符(仅使用一条语句),否则不起作用。

int main()
{
    char ansr;

    do
    {
        printf("What do you want to do?\n");
        printf("A = Add Employee\nR = Remove Employee\nE = Exit\n");
        scanf(" %c", &ansr);
    }while(ansr != 'E'||ansr != 'e');

    return 0;
}

每当我写“ E”或“ e”时,我都希望程序退出while循环,但由于某种原因,它将继续执行do-while语句。

逻辑OR(||)表示“如果其中任何一个为真”。 在您的情况下,如果输入不是'E'或不是'e',则它将执行另一个迭代。 这始终是正确的,因为即使是其中之一,也不会是另一个。

您可能正在考虑逻辑AND(&&):

while (ansr != 'E' && ansr != 'e');

这意味着“如果这两个都是正确的”。 如果ansr是'E'或'e',则其中一个子句将为false,然后整个表达式将为false。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM