2015-03-02 95 views
1

我已经尝试编写一个循环来避免用户通过使用||运算符将错误类型的数据(实际上是布尔值)输入到程序中。逻辑或优先级

int Entrer() 
{ 
    int A; 
    do 
    { 
     cout<<"Entrez 0 ou 1."<<endl; 
     cin >> A; 
    } 
    while (A != (1 || 0)); 
    return A; 
} 

有人可以告诉我,为什么程序只接受1并没有0

+1

你可能会做得更好,当一个!= 0 && a!= 1 – 2015-03-02 15:04:10

回答

2
do { ... } while (A != (1 || 0)); 

应该while (A != 1 && A != 0);

否则,A != (1 || 0)代表A != 1因为(1 || 0)!=之前评估。

0

如果要接受10,则需要编写条件为while(A != 1 && A != 0);。由于您的条件撰写,它将首先评估(1 || 0),并且,因为1true0false,将评估为A != 1

+0

感谢您的教学人员,我真的很感激。 – Yvain 2015-03-02 17:26:58