双重条件在c ++中不起作用

时间:2014-03-05 17:43:57

标签: c++

第一:我是先生。 :)我的c ++代码有问题。

#include <iostream>
using namespace std;  
int main()
{
    int a,b;
    do {
        cout << "a= ";
        cin >> a;
        if (a<=0) {
            cout << "This number is not positive!\n";
        }
    }
    while (a<=0);
    do {
        cout << "b= ";
        cin >> b;
        if (b<=0) {
            cout << "This number is not positive!\n";
        }
    }
    while ((a==b) and (b<=0));
}

你有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:5)

这种情况不可能成立。我们已经知道a是正面的,因此它不能同等bb为负。

听起来像你想要or。这意味着b也必须为正数,且不得与a相同。请注意,通常使用&&代替and||代替or

while ((a==b) || (b<=0));

这样想:如果输入与b相同,我们就无法继续询问a是否为