考试问题。关于如何在Cout中处理布尔值

杰克·费南

我正在为即将参加的考试而学习,并且遇到了过去的考试问题,这对我来说没有意义。

考虑以下主要功能:

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意思?

如果您是这样认为的,它不会检查是否x0之间10

< 是二进制运算符,它遵循运算符评估规则(优先级和关联性)。

所以0 < x < 10实际上意味着(0 < x) < 10您需要进行两次检查才能获得想要的结果(留给您)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章