C ++程序不会终止

时间:2016-03-20 06:08:13

标签: c++ visual-studio visual-c++ runtime-error

我创建了以下简单程序,如果它在一个列表中加倍,并在输入的数字不在列表中时终止。

#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; 
}

但是,如果程序正在运行,如果输入的数字不在列表中,程序将继续循环。我怎样才能阻止这种情况发生?

3 个答案:

答案 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;
    }
}