循环条件中逻辑运算符的使用

Ris*_* K. 4 c++ loops while-loop logical-operators do-while

在下面给出的代码中,为什么||逻辑不起作用,而是循环在&&使用时专门终止?

int main() {
    char select {};
    do {
        cout<<"Continue the loop or else quit ? (Y/Q): ";
        cin>>select;
    } while (select != 'q' && select != 'Q'); // <--- why || (or) doesn't work here ??
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Ted*_*gmo 5

这个循环将继续,而select不是q 也不是Q

while (select != 'q' && select != 'Q'); 
Run Code Online (Sandbox Code Playgroud)

selectis notq it's not时,此循环将继续Q

while (select != 'q' || select != 'Q'); 
Run Code Online (Sandbox Code Playgroud)

由于其中之一必须是真的,它就会永远持续下去。

例子:

  1. 用户输入 q

select != 'q'评价为false
select != 'Q'评价为true
false || true评价为true

  1. 用户输入 Q

select != 'q'评价为true
select != 'Q'评价为false
true || false评价为true