簡體   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