我试图在do-while语句中使用OR逻辑运算符,但由于某种原因它不起作用。
它将使用no或逻辑运算符(只使用一个语句),否则不使用。

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语句。

最佳答案

逻辑或(| |)表示“如果其中任何一个是真的”。在您的情况下,如果输入不是“E”或不是“E”,则它将执行另一个迭代。这总是真的,因为即使是其中一个,也不会是另一个。
你可能在想逻辑和(&&):

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

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

关于c - 为什么OR逻辑运算符(||)不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57420292/

10-09 20:37