表达中的bool操作

时间:2014-02-13 09:23:43

标签: c++

#include <iostream.h>
int main() {
   int choice;
   cin>>choice;
   if (1<=choice<=3) cout<<"good";
   else cout<<"bad";
   return 0;
}

如何评估bool表达式?这个表达式等于

if ((1<=choice)||(choice<=3))

3 个答案:

答案 0 :(得分:3)

if (1<=choice<=3) cout<<"good";

就像写作:

if ((1<=choice)<=3) cout<<"good";

总是满意,因为1<=choice返回0或1(0是 false ,1是 true ),总是 <=3

你(可能)想做的是:

if(1 <= choice && choice <=3)

答案 1 :(得分:0)

(1<=choice<=3)

不等同于:

(1 <= choice || choice <= 3)

而是:

((1 <= choice) <= 3)

总是如此,因为int(1&lt; = choice)等于0或1

我认为你想要的是:

(1 <= choice && choice <= 3)

答案 2 :(得分:0)

你需要这个。

if (1<=choice && choice <=3) cout<<"good";