我尝试编写一个循环来阻止用户使用||
运算符将错误类型的数据(实际上是布尔值)输入到程序中。
int Entrer()
{
int A;
do
{
cout<<"Entrez 0 ou 1."<<endl;
cin >> A;
}
while (A != (1 || 0));
return A;
}
有人可以告诉我为什么该计划只接受1
而不是0
?
答案 0 :(得分:2)
do { ... } while (A != (1 || 0));
应为while (A != 1 && A != 0);
否则,A != (1 || 0)
代表A != 1
,因为在(1 || 0)
之前评估!=
。
答案 1 :(得分:0)
如果您想接受1
和0
,则需要将条件写为while(A != 1 && A != 0);
。在您的条件编写时,它将首先评估(1 || 0)
,并且,1
为true
且0
为false
,将评估为A != 1
}。