使用OR运算符的do-while由于某种原因不起作用

时间:2012-08-22 01:50:14

标签: c++

我认为这个很简单,但我无法弄清楚问题是什么。问题是:

如果有效:

char input;
do {
    cin >> input;
} while (input != '1');
system ("pause");

然后,为什么不这样做:

char input;
do {
    cin >> input;
} while ((input != '1') || (input != '2'));
system ("pause");

提前致谢。

1 个答案:

答案 0 :(得分:8)

(input != '1') || (input != '2')

此表达式始终评估为true,因为input不能同时为'1''2'

您更有可能希望使用&&:将||替换为&&,如果true不是input,则表达式将评估为'1' {1}}也不'2'