以下のような簡単なプログラムを作成しました。そのプログラムはリスト内にある場合は2倍に、入力された番号がリストにない場合は終了するように設計されています。C++プログラムが終了しない
#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;
}
ただし、リストにない番号が入力された場合にプログラムが実行されているときは、プログラムはループし続けます。これをどうやって止めることができますか?
デバッガを使用してください。あなたの問題はどこですか?また、質問を改善するために、[最小限で完全で検証可能なサンプルを作成する方法](http://stackoverflow.com/help/mcve)をご覧ください。ようこそ! –
実行時に問題が発生します。ユーザーが入力した番号がリストにない場合、プログラムは終了する必要がありますが、while(isinlist = true)がfalseであるとみなされてもプログラムは続行します。 isinlist = false; –
全く同じ質問が(少なくとも)異なる人々によって2回質問されるのはなぜですか? http://stackoverflow.com/questions/36111096/need-help-to-stop-program-terminating-without-users-consent –