我创建了以下简单程序,如果它在一个列表中加倍,并在输入的数字不在列表中时终止。
#include <iostream>
#include <array>
using namespace std;
int main()
{
cout << "First we will make a list" << endl;
array <int, 5>list;
int x, number;
bool isinlist = true;
cout << "Enter list of 5 numbers." << endl;
for (x = 0; x <= 4; x++)
{
cin >> list[x];
}
while (isinlist = true)
{
cout << "now enter a number on the list to double" << endl;
cin >> number;
for (x = 0; x <= 4; x++)
{
if (number == list[x])
{
cout << "The number is in the list. Double " << number << " is " << number * 2 << endl;
}
else
isinlist = false;
}
}
return 0;
}
但是,如果程序正在运行,如果输入的数字不在列表中,程序将继续循环。我怎样才能阻止这种情况发生?
答案 0 :(得分:1)
isinlist = true
不是while
循环所需的条件。你想要isinlist == true
。由于isinlist
是布尔值,因此您也可以省略== true
部分[布尔禅]。
答案 1 :(得分:0)
分配isinlist = true
的条件将始终评估为真。
您应该使用isinlist
而不使用有害分配作为条件。
答案 2 :(得分:0)
你也可以这样做。删除布尔变量(不需要)。
while(true)
{
cout << "now enter a number on the list to double" << endl;
cin >> number;
for (x = 0; x <= 4; x++)
{
if (number == list[x])
{
cout << "The number is in the list. Double " << number << " is " << number * 2 << endl;
}
else
break;
}
}