您好我正在编写一个简单的程序,要求在一定范围内输入用户。我使用布尔值来启动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;
}
答案 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)
循环。