我正在为即将参加的考试而学习,并且遇到了过去的考试问题,这对我来说没有意义。
考虑以下主要功能:
int main()
{
int x = 0;
cout << "x = " << x << ", (0 < x < 10) = " << (0 < x < 10) << endl;
int x = 5;
cout << "x = " << x << ", (0 < x < 10) = " << (0 < x < 10) << endl;
int x = 10;
cout << "x = " << x << ", (0 < x < 10) = " << (0 < x < 10) << endl;
return 0;
}
执行后,程序将打印以下内容:
x = 0, (0 < x < 10) = 1
x = 5, (0 < x < 10) = 1
x = 10, (0 < x < 10) = 1
确切说明发生了什么。
这就是问题所在。据我所知,输出的最后一行应为“ x = 10,(0 <x <10)= 0”。我想念什么?
您期望什么0 < x < 10
意思?
如果您是这样认为的,它不会检查是否x
在0
和之间10
。
<
是二进制运算符,它遵循运算符评估规则(优先级和关联性)。
所以0 < x < 10
实际上意味着(0 < x) < 10
。您需要进行两次检查才能获得想要的结果(留给您)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句