为什么 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 语句。
逻辑或 (||) 表示 "if either of these is true." 在您的情况下,如果输入不是 'E' 或者不是 'e' 那么它将执行另一次迭代。这总是正确的,因为即使它是其中之一,也不会是另一个。
您可能正在考虑逻辑与 (&&):
while (ansr != 'E' && ansr != 'e');
这意味着"if both of these are true."如果ansr是'E'或'e',其中一个子句将为假,然后整个表达式将变为假。
我尝试在 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 语句。
逻辑或 (||) 表示 "if either of these is true." 在您的情况下,如果输入不是 'E' 或者不是 'e' 那么它将执行另一次迭代。这总是正确的,因为即使它是其中之一,也不会是另一个。
您可能正在考虑逻辑与 (&&):
while (ansr != 'E' && ansr != 'e');
这意味着"if both of these are true."如果ansr是'E'或'e',其中一个子句将为假,然后整个表达式将变为假。