[英]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.