虽然循环不能在程序中使用布尔值(C ++)

时间:2014-06-03 03:36:35

标签: c++

您好我正在编写一个简单的程序,要求在一定范围内输入用户。我使用布尔值来启动while循环,但是当我尝试在第一个if语句中声明boolean false时,它不会结束循环并且程序不断要求用户输入。我已经考虑过使用休息但不应该否定条件阻止循环?

    int num; 
    cout << "Enter a number";
    bool invNum= true;
    while (invNum = true)
    {
        cin >> num;

        if (num >= 0 && num <= 20)
        {
            cout << "You typed: " << num << endl;
            invNum = false;
            //break;
        }

        if (num <= 0 || num >= 20)
        {
            cout << "Type another number: ";
        }
    }

    return EXIT_SUCCESS;
}

2 个答案:

答案 0 :(得分:2)

=不用于比较。您应该使用==。将while (invNum = true)更改为while (invNum == true)或更高,以便撰写while (true == invNum)

答案 1 :(得分:2)

while (invNum = true)

这是问题所在。

应该是:

while (invNum == true)

您目前正在做的是将true分配给invNum。赋值语句invNum = true在设置为invNum后返回true的值,实际上会导致while(true)循环。