会这样做吗?

时间:2017-10-03 22:47:28

标签: c++

只是阅读一些C ++书籍,我只是想知道是否有人可以仔细检查这一点,这两段代码是否也会这样做?

if (x > 5)
    if(y > 5)
        cout << "something";
else 
    cout <<"something else";
if (x > 5) && (y > 5)
    cout <<"something";
else    
    cout <<"something else";

我是否正确地认为这两个人都做了不同的写法,一个朋友告诉我他们是另一个告诉我他们不是那么只是想最好问​​这里

感谢。

2 个答案:

答案 0 :(得分:2)

这两个陈述不一样。如果x <= 5,前者根本不打印。

第一个例子也有不正确的缩进(并且是一个很好的论据,为什么你应该总是包括大括号)。与大括号等效的是

if (x > 5) {
    if (y > 5) {
        cout << "something";
    } else  {
        cout <<"something else";
    }
}

这应该很明显,如果x <= 5它什么也不执行。

答案 1 :(得分:0)

他们没有。

考虑x = y = 0的样本数据。 第一个片段不会打印任何内容,而第二个片段会打印&#34;其他内容&#34;。